Skip to content

LucifaDva/serialize

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 

Repository files navigation

phpserialize in Go

Introduce

phpseriallize is a package for serialize and unserialize an object like php

rules like:

int  	i:N;	
bool  	b:1;
string 	s:N;
float  	d:2.3;
Object  o:{..

Installation

Install:

  • Using default go get tool:

    $ go get "github.com/sangasong/serialize

Example

package main
import (
    "github.com/sangasong/serialize/phpserialize"
    "fmt"
)
func main() {
        data := make(map[interface{}]interface{})
        data2 := make(map[interface{}]interface{})
        data2["test"] = true
        data2[int64(0)] = int64(5)
        data2["flt32"] = float32(2.3)
        data2["int64"] = int64(45)
        data3 := phpserialize.NewKvDataMap()
        data3.SetClassName("A")
        data3.SetPrivateMemberValue("a", 1)
        data3.SetProtectedMemberValue("b", 3.14)
        data3.SetPublicMemberValue("c", data2)
        data["arr"] = data2
        data["3"] = "s\"tr'}e"
        data["g"] = nil
        data["object"] = data3

        var (
                result    string
                decodeRes interface{}
                err       error
        )
        if result, err = phpserialize.Encode(data); err != nil {
                fmt.Println(fmt.Sprintf("encode data fail %v, %v", err, data))
                return
        }
        fmt.Println(fmt.Sprintf("encode data:%v to result:%v ok", data, result))
        if decodeRes, err = phpserialize.Decode(result); err != nil {
                fmt.Println(fmt.Sprintf("decode data fail %v, %v", err, result))
                return
        }
        fmt.Println(fmt.Sprintf("decode raw:%v to data:%v ok", result, decodeRes))
}

About

go realize serialize

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages