色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go+json+非標準

老白2年前9瀏覽0評論

在Go語言中,我們可以使用標準庫中的encoding/json包來處理JSON格式的數據。JSON是一種輕量級的數據交換格式,非常適合用于Web應用程序之間的數據傳輸。

JSON中的數據由鍵值對組成,數據類型包括數字、布爾值、字符串、數組、對象。下面是一個簡單的JSON數據:

{
"name": "Mike",
"age": 24,
"married": false,
"address": {
"street": "123 Main St",
"city": "New York",
"state": "NY"
},
"hobbies": ["reading", "swimming", "traveling"]
}

若要將JSON數據轉換為Go語言中的結構體類型,我們可以使用json.Unmarshal()函數。假設我們定義了一個Person結構體如下:

type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Married bool `json:"married"`
Address struct {
Street string `json:"street"`
City string `json:"city"`
State string `json:"state"`
} `json:"address"`
Hobbies []string `json:"hobbies"`
}

我們可以使用以下代碼將JSON數據解析為該結構體類型:

var jsonStr = `{
"name": "Mike",
"age": 24,
"married": false,
"address": {
"street": "123 Main St",
"city": "New York",
"state": "NY"
},
"hobbies": ["reading", "swimming", "traveling"]
}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
fmt.Println(err)
}
fmt.Println(person)

當然,在實際開發過程中,我們可能會遇到一些非標準的JSON格式。這時候,我們可以使用json.RawMessage類型來處理JSON中未知的字段。

type Response struct {
Code int `json:"code"`
Message string `json:"message"`
Data json.RawMessage `json:"data"`
}

在這個例子中,我們的JSON數據有一個名為"data"的字段,其數據類型不確定。這時,我們就可以使用json.RawMessage類型來處理這個字段,代碼如下:

var response Response
err := json.Unmarshal([]byte(jsonStr), &response)
if err != nil {
fmt.Println(err)
}
fmt.Println(response)

以上是關于Go語言中如何處理JSON數據的簡單介紹,json.RawMessage類型可以幫助我們處理非標準的JSON格式數據,非常實用。