変数が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文字列として「ヌル」は、スライス、値に変換されている場合[]
。