解析的JSON裡面欄位是動態的怎麼處理?

astaxie發表於2017-01-03

例如有如下的 JSON 字串:

{
    "id":"M7DHM98AD2-32E3223F",
    "tags": [
        {
            "id":"9M23X2Z0",
            "name":"History"
        },
        {
            "id":"123123123",
            "name":"Theory"
        }
    ],
    "fields": {
        "title":"Title of the item",
        "description":"Description of the item"
    }
}

idtags 是固定的,但是 fields 裡面的字串經常是動態變化的,可能是 title , description 或者其他的欄位,大家在平常解析中都是怎麼處理的呢?

針對上面的 JSON,可以定義如下的結構體,但是Fields是動態變化的,如何更好的處理呢?

type Item struct {
    ID string `json:"id"`
    Tags []Tag `json:"tags"`
    //Fields []Field `json:"fields"`
}

// Tag data from the call
type Tag struct {
    ID string `json:"id"`
    Name string `json:"name"`
}

// AllEntries gets all entries from the session
func AllEntries() {
    resp, _ := client.Get(APIURL)
    body, _ := ioutil.ReadAll(resp.Body)

    item := new(Item)
    _ = json.Unmarshal(body, &item)

    fmt.Println(i, "->", item.ID)
}
更多原創文章乾貨分享,請關注公眾號
  • 解析的JSON裡面欄位是動態的怎麼處理?
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章