변수가 할 수있는 경우 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)"는, 슬라이스, 값으로 변환하는 경우 []
.