Golang encoding/json: Difference between revisions

From wikinotes
Line 48: Line 48:
names := []string{"maize", "sprout"}
names := []string{"maize", "sprout"}
bytes, _ := json.Marshal(names)
bytes, _ := json.Marshal(names)
fmt.Println(string(bytes))
fmt.Println(string(bytes)) // '["maize", "sprout"]'
</syntaxhighlight>
</syntaxhighlight>
</blockquote><!-- Builtins -->
</blockquote><!-- Builtins -->

Revision as of 17:33, 25 June 2022

Conveniently, the builtin types are ready for json serialization/deserialization without any additional work.

Deserializing

Builtins

// string, int
var name string
json.Unmarshal([]byte(`"vaderd"`), &name)
fmt.Println(name)

// array, slice
var items [2]string
json.Unmarshal([]byte(`["abc", "def"]`), &items)
fmt.Println(items)  // [abc def]

Json-Object to Struct

type User struct {
    id   int
    Name string
}

func main() {
    var user User
    data := []byte(`{"id": 123, "Name": "vaderd"}`)
    json.Unmarshal(data, &user)
    fmt.Println(user.Name)
}

Serializing

Builtins

// string, int
bytes, _ := json.Marshal("vaderd")
fmt.Println(string(bytes))  // '"vaderd"'

// array, slice
names := []string{"maize", "sprout"}
bytes, _ := json.Marshal(names)
fmt.Println(string(bytes))  // '["maize", "sprout"]'

Slice to Json-Array

Struct to Json-Object