假設我有這樣的 json:
{
"a": [
[
"aaa",
15
],
[
"bbb",
11
]
]
}
我有這個代碼:
func main() {
XJson := `
{
"a": [
[
"aaa",
15
],
[
"bbb",
11
]
]
}`
var Output StructJson
json.Unmarshal([]byte(XJson), &Output)
fmt.Println(Output)
}
type StructJson struct {
[][]string `json:"a"` //wrong because have 15 and 11 have int type data
///what must i do in here?
}
如何解組它?我的意思是,“aaa”和“bbb”具有型別資料字串,15 和 11 具有型別資料整數。如果我使用那個“錯誤”的結構,輸出是
{[[aaa ] [bbb ]]}
uj5u.com熱心網友回復:
正如@colm.anseo 提到的@ekomonimo,為了解決這類問題,我們可以使用 interface{}
這里如何使用它:
package main
import (
"encoding/json"
"fmt"
"reflect"
)
func main() {
XJson := `
{
"a": [
[
"aaa",
15
],
[
"bbb",
11
]
]
}`
var Output StructJson
json.Unmarshal([]byte(XJson), &Output)
fmt.Println("Output:", Output)
// Prints: aaa string
fmt.Println("Data on path Output.A[0][0]:", Output.A[0][0], reflect.TypeOf(Output.A[0][0]))
// Prints: 15 float64
fmt.Println("Data on path Output.A[0][1]:", Output.A[0][1], reflect.TypeOf(Output.A[0][1]))
}
type StructJson struct {
A [][]interface{} `json:"a"`
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/352551.html
