簡體   English   中英

Go中的JSON參考解析

[英]JSON reference parsing in Go

我有這樣的json文件:

{
  "types": {
      "controller": {
        "base": {
          "speed": 1024,
          "n_core": 1
        }
      }
  },

  "Server1": {
      "type": {"$ref": "#/types/controller/base"},
      "name": "Server1",
      "is_in_json": true
    },
}

它包含$ref鍵。 這里

“ $ ref”字符串值包含一個URI [RFC3986],它標識了所引用的JSON值的位置。 如果字符串值不符合URI語法規則,則為錯誤條件。 JSON參考對象中除“ $ ref”以外的任何成員都將被忽略。

為了進行解析,我需要編寫一個帶有json-tag的結構,如下所示:

type Server struct {
    Type ??? `json:"???"`
    Name string `json:"name"`
    IsInJson bool `json:"is_in_json"`
}

我應該用什么代替??? 用於引用另一種結構?

如果鍵始終是$ref並且這是從對象中捕獲的唯一鍵,這似乎是引用的文檔中的要求,那么可以為其鍵入一個類型:

type TypeData struct {
    Ref string `json:"$ref"`
}
type Server struct {
    Type TypeData `json:"type"`
    Name string `json:"name"`
    IsInJson bool `json:"is_in_json"`
}

如果不是這種情況,最簡單的方法可能是將其分配給map[string]string ,然后遍歷map以適當地處理元素:

type Server struct {
    Type map[string]string `json:"type"`
    Name string `json:"name"`
    IsInJson bool `json:"is_in_json"`
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM