Home >Backend Development >Golang >golang slice to json

golang slice to json

WBOY
WBOYOriginal
2023-05-10 10:05:361216browse

With the continuous development of Golang, Slice has become one of the very important data types in Golang, and its flexibility and ease of use are commendable. A slice is a reference type that is implemented using an array under the hood. Slices can dynamically add and reduce elements and are more convenient to use than arrays. JSON (JavaScript Object Notation) is a lightweight data exchange format with good readability and easy parsing. In Golang, slices can be converted to JSON format through the standard library "encoding/json".

This article will explore in detail how to convert slices in Golang to JSON format.

Method of converting slices to JSON

In Golang, the method of converting slices to JSON is very simple. You only need to use the Marshal function in the standard library "encoding/json". The Marshal function receives a parameter of type interface{} and returns a byte array and an error. Before conversion, the data type in the slice needs to be defined as a structure type.

The following is a simple sample code that shows how to convert the slice to JSON format:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    persons := []Person{{"Alice", 25}, {"Bob", 31}, {"Charlie", 26}, {"David", 23}}

    jsonBytes, err := json.Marshal(persons)
    if err != nil {
        fmt.Println("转换出错:", err)
    }

    jsonStr := string(jsonBytes)
    fmt.Println(jsonStr)
}

With the above code, we can get the following output:

[{"Name":"Alice","Age":25},{"Name":"Bob","Age":31},{"Name":"Charlie","Age":26},{"Name":"David","Age":23}]

From It can be seen from the output that each element in the converted JSON format data is a JSON object composed of a structure, and each field of the structure is converted into a key-value pair in the JSON object.

Object to JSON

In addition to slices, other data types in Golang, such as structures, maps, etc., can be converted to JSON format through the Marshal function. We can change the slice in the above example to a structure to display:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    person := Person{
        Name: "Alice",
        Age:  25,
    }

    jsonBytes, err := json.Marshal(person)
    if err != nil {
        fmt.Println("转换出错:", err)
    }

    jsonStr := string(jsonBytes)
    fmt.Println(jsonStr)
}

Through the above code, we can get the following output result:

{"Name":"Alice","Age":25}

As can be seen from the output result, the converted In JSON format data, it is also a JSON object composed of a structure, and each field of the structure is converted into a key-value pair in the JSON object.

Special character escaping

In JSON objects, some characters require special escaping, such as double quotes ("), slashes (/), newlines (
) etc. If there are these characters in the original string, special characters need to be escaped before converting to JSON format.

In Golang, the Escape function is provided in the standard library "encoding/json" to perform special Character escaping. The following is a sample code that shows how to escape special characters:

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    str := ""Hello, Golang!" / 
"

    jsonBytes, err := json.Marshal(str)
    if err != nil {
        fmt.Println("转换出错:", err)
    }

    jsonStr := string(jsonBytes)
    fmt.Println(jsonStr)

    jsonStr = json.EscapeString(str)
    fmt.Println(jsonStr)
}

Through the above code, we can get the following output:

""Hello, Golang!" / 
"
""Hello, Golang!" / \n"

From the output result, we can It can be seen that in the original string, double quotes and slashes are escaped; and after escaping using the EscapeString function, the slashes and newlines are also escaped.

Conclusion

This article introduces the method of converting slices to JSON format in Golang, as well as the conversion methods of other data types (such as structures, maps). It also explains how to escape special characters. I hope this article can help you Problems using JSON format conversion in Golang.

The above is the detailed content of golang slice 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