json - Store struct as string in redis -


as redis stores strings know how can equivalent of javascript's json.stringify using go convert struct string.

i have tried typecasting:

string(the_struct) 

but results in error.

the encoding/json package can used convert struct json string , vice versa (parse json string struct).

simple example (try on go playground):

type person struct {     name string     age  int }  func main() {     p := person{"bob", 23}      // struct -> json     data, err := json.marshal(&p)     if err != nil {         panic(err)     }     fmt.println(string(data))      // json -> json     var p2 person     err = json.unmarshal(data, &p2)     if err != nil {         panic(err)     }     fmt.printf("%+v", p2) } 

output:

{"name":"bob","age":23} {name:bob age:23} 

notes:

the fields of struct must exported (start them capital letter), else json package (which uses reflection) not able read/write them.

you can specify tags struct fields control/fine tune json marshaling/unmarshaling process, example change names in json text:

type person struct {     name string `json:"name"`     age  int    `json:"years"` } 

with change output of above application following:

{"name":"bob","years":23} {name:bob age:23} 

the documentation of json.marshal() function details possibilities provided tags.

and implementing json.marshaler , json.unmarshaler interfaces can customize marshaling / unmarshaling process.

also if struct not pre-defined (e.g. don't know fields in advance), can use map[string]interface{}. see answer details , examples.


Comments

Popular posts from this blog

c++ - Difference between pre and post decrement in recursive function argument -

php - Nothing but 'run(); ' when browsing to my local project, how do I fix this? -

php - How can I echo out this array? -