如果我有一些任意的 JSON,我如何使用地圖鍵和/或切片索引進(jìn)行深度集和獲取嵌套屬性?例如,在JSON API 示例的以下摘錄中:{ "data": [{ "type": "posts", "id": "1", "title": "JSON API paints my bikeshed!", "links": { "self": "http://example.com/posts/1", "author": { "self": "http://example.com/posts/1/links/author", "related": "http://example.com/posts/1/author", "linkage": { "type": "people", "id": "9" } } } }]}我想獲得字符串"9"位于data.0.links.author.linkage.id使用類似:[]interface{}{"data",0,"links","author","linkage","id"}我知道這樣做的理想方法是創(chuàng)建映射到我為生產(chǎn)代碼所做的 JSON 對象的嵌套結(jié)構(gòu),但有時(shí)我需要做一些快速測試,這在 Go 中也很好。
1 回答

回首憶惘然
TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
你有stretchr/objx提供類似的方法。
使用示例:
document, _ := objx.FromJSON(json)
document.Get("path.to.field[0].you.want").Str()
然而,除非你真的提前完全不知道你的 JSON 輸入的結(jié)構(gòu),否則這不是 golang 的首選方式......
- 1 回答
- 0 關(guān)注
- 276 瀏覽