在Golang中,如何使用匿名陣列來反序列化json資料呢?這是許多開發者常常遇到的問題。匿名數組可以方便地處理一些簡單的資料結構,而無需定義特定的結構體。透過使用Golang的內建json包,我們可以輕鬆地實現這個功能。下面,php小編新一將為您詳細介紹如何在Golang中使用匿名數組來反序列化json資料的方法。讓我們一起來看看吧!
我從外部伺服器接收此 json:
[["010117"、"070117"、"080117"]、["080117"、"140117"、"150117"]、["150117"、"210117"、"220117"]]
##我需要解析它
<pre class="brush:php;toolbar:false;">package main
import (
"encoding/json"
"fmt"
"io"
"os"
"runtime"
)
type Range struct {
From string
To string
Do string
}
type AllRanges struct {
Ranges []Range
}
func main() {
var ranges AllRanges
j, err := os.ReadFile(file)
if err != nil {
panic("Can't read json file")
}
if json.Unmarshal(j, &v) != nil {
panic("Error reading the json")
}
}</pre>
當我執行時,會拋出一個恐慌,表示讀取 json 時出錯
提前致謝!
這不是失敗的程式碼。您發布的程式碼將無法編譯,因為它試圖解組為未宣告的變數
v
。
假設
v應該是ranges
,問題就很簡單了....
ranges 的類型是 allranges
,它是一個具有命名成員的結構體,
{ "ranges": [ { "from": "..", "to": .., "do": ".." }, { etc } ] }###要解組由字串數組組成的匿名數組的數據,您需要將 ###ranges### 宣告為字串數組數組:###
var ranges [][]string ... if json.Unmarshal(j, &ranges) != nil { panic("Error reading the json") }###一旦解組到這個陣列陣列中,您就需要編寫程式碼將其轉換為所需的結構化值。 ### ###這個###playground###示範如何成功將範例資料解組到 ###[][]string### 中。轉型留作練習。 ###
以上是如何在 Golang 中用匿名數組反序列化 json?的詳細內容。更多資訊請關注PHP中文網其他相關文章!