1 回答

TA貢獻1865條經(jīng)驗 獲得超7個贊
問題源于 json 包處理reflect.Value
不符合預期的事實。
正如您在以下代碼片段中看到的,reflect.MakeSlice
返回一個類型Value
,而不是一個切片。
slice_empty_reflect_make := reflect.MakeSlice(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? reflect.SliceOf(
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? reflect.TypeOf(5)),
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 10, 10)
fmt.Printf("Type of reflect.MakeSlice(): %s\n",
? ? ? ? ? ?reflect.TypeOf(slice_empty_reflect_make).Name())
這產(chǎn)生:
Type of reflect.MakeSlice(): Value
當您在 json 編組器中輸入時Value,它將返回一個對象,而不是數(shù)組:
Json: {}
Error: <nil>
Value您需要使用以下命令返回到界面.Interface():
jsonBytes, err := json.Marshal(slice_empty_reflect_make.Interface())
- 1 回答
- 0 關注
- 191 瀏覽
添加回答
舉報