JSON 언어 변환 --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

결과 출력은 "널 (null)"이다.

JSON 코드는 "널 (null)"후 즉, 모든 변수는 전무하다. 예를 들어, 포인터 변수는 다른 조각 섹션을 할당하지 :

var ptr *int
var s []int

JSON 문자열을 구문 분석 "널 (null)", 변환 된 값을 경우 반대로, 그것은 무엇입니까?

구조는 변수의 기본 값으로 변환 한 후 예를 들어, 구조를 변환합니다.

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 문자열로 "널 (null)"는, 슬라이스, 값으로 변환하는 경우 [].

추천

출처www.cnblogs.com/lanyangsh/p/12113258.html