當(dāng)它們具有常規(guī)鍵值格式時(shí),我已成功將 JSON 解析為結(jié)構(gòu)體。但是,我如何解析這樣的 JSON:{ "count": 2, "results": [{ key: "workspaces", id: "10" }, { key: "workspaces", id: "11" }], "workspaces": { "10": { id: "10", title: "some project", participant_ids: ["2", "6"], primary_counterpart_id: "6" }, "11": { id: "11", title: "another project", participant_ids: ["2", "8"], primary_counterpart_id: "8" } }}該workspaces部分的鍵沒有提前定義,而是保存工作區(qū) ID?我最初的結(jié)構(gòu)是:type WorkspaceRequest struct { Count int64 `json:"count"` Workspaces []Workspace `json:"workspaces"`}type Workspace struct { Title string `json:"title"`}如何從顯示的 JSON 中獲取工作區(qū)列表?
1 回答

蕪湖不蕪
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
問題是您Workspaces
在模型中表示為數(shù)組,但它是 json 中的字典/映射。只要讓它成為一個(gè)map[sting]Workspace
,你應(yīng)該會(huì)很好。第一個(gè)項(xiàng)目將與instance.Workspaces["11"]
關(guān)于我是如何知道的一些提示;1)工作區(qū)用大括號打開{
,數(shù)組永遠(yuǎn)不是正確的類型(它們總是包含[]
在 json 中),它是一個(gè)對象或地圖。2) 其中的項(xiàng)目表示為"11": { ... }
。這意味著如果我在 Go 中用一個(gè)對象來表示它,我需要一個(gè)名為11
, 12
ect的屬性,可以很安全地假設(shè)這不是你想要的,這意味著它必須是一個(gè)地圖。
- 1 回答
- 0 關(guān)注
- 224 瀏覽
添加回答
舉報(bào)
0/150
提交
取消