Home  >  Article  >  Backend Development  >  golang string to json

golang string to json

WBOY
WBOYOriginal
2023-05-13 10:04:073301browse

In golang, to convert string type into json object, you can use the json package in the standard library.

First, we can use the json.Marshal() function to convert objects in golang into json format strings. For example:

type Person struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

p := Person{Name: "Tom", Age: 29}
jsonStr, err := json.Marshal(p)
if err != nil {
    fmt.Println("json.Marshal failed:", err)
}

fmt.Println(string(jsonStr))

The above code will output the following results:

{"name":"Tom","age":29}

Next, we can use the json.Unmarshal() function to convert the json string into an object in golang. For example:

jsonStr := `{"name":"Tom","age":29}`

var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
    fmt.Println("json.Unmarshal failed:", err)
}

fmt.Println(p.Name, p.Age)

The above code will output the following results:

Tom 29

It should be noted that when parsing json, parameters of type []byte are used, so the mandatory type is required Conversion converts string type to []byte type.

In addition, you can also directly use the json.NewDecoder() function to parse the json format string into a json object, for example:

jsonStr := `{"name":"Tom","age":29}`

var data interface{}
decoder := json.NewDecoder(strings.NewReader(jsonStr))
err := decoder.Decode(&data)
if err != nil {
    fmt.Println("json.Unmarshal failed:", err)
}

fmt.Println(data)

The above code will output the following results:

map[name:Tom age:29]

In this way, we can use the standard library json package in golang to convert the string type into a json object.

The above is the detailed content of golang string to json. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn