JSON言語変換を行って--nil

変数がnilの場合JSONにできた場合、言語に行きますか?

あなたが変換することができた場合、変換は何の結果ですか?

次の例は、直接見て。

package main

import (
        "encoding/json"
        "fmt"
)

func main() {
        marshalTest()
}


func marshalTest() {
    b, err := json.Marshal(nil)
    if err != nil {
        fmt.Println("json.Marshal failed:", err)
        return
    }

    fmt.Println("result:", string(b))
}

出力:

result: null

出力結果は「ヌル」です。

JSONコードは「ヌル」された後に他の言葉では、すべての変数は、nilです。例えば、ポインタ変数の割り当てられていない、他のスライス断面:

var ptr *int
var s []int

JSON文字列が解析され、「ヌル」、変換後の値である場合には逆に、それは何ですか?

構造変数のデフォルト値に変換された後、例えば、構造に変換します。

package main

import (
        "encoding/json"
        "fmt"
)

func main() {
        unmarshalTest()
}

type Apple struct {
        Size int
        Addr string
        Num *int

}

func unmarshalTest() {
        value := []byte("null")
        a := Apple{}

        if err := json.Unmarshal(value, &a); err != nil {
                fmt.Println("json.Unmarshal failed:", err)
                return
        }


        fmt.Printf("result:%+v\n", a)
}

出力:

result:{Size:0 Addr: Num:<nil>}

JSON文字列として「ヌル」は、スライス、値に変換されている場合[]

おすすめ

転載: www.cnblogs.com/lanyangsh/p/12113258.html