我有我轉換成JSON在老式的方式結構:合併兩個JSON字符串
type Output struct {
Name string `json:"name"`
Command string `json:"command"`
Status int `json:"status"`
Output string `json:"output"`
Ttl int `json:"ttl,omitempty"`
Source string `json:"source,omitempty"`
Handlers []string `json:"handlers,omitempty"`
}
sensu_values := &Output{
Name: name,
Command: command,
Status: status,
Output: output,
Ttl: ttl,
Source: source,
Handlers: [handlers],
}
我想讀從文件系統,它可以通過被定義爲任何一個任意JSON文件用戶,然後將其添加到現有的JSON字符串中,從原始複製品中取出。
我該怎麼做?
你能解釋一下你想要做什麼,您遇到什麼麻煩? –
您可以將傳入的JSON讀入'map [string] interface {}',然後迭代該映射,將鍵與結構上的字段名進行比較,並在結果匹配的情況下分配給結構,假定值的類型斷言成功。如果傳入的JSON是任意的並且可以包含嵌套,則必須使用遞歸算法來確保您覆蓋所有嵌套的鍵。 – evanmcdonnal
所以我儘可能按照你的建議將傳入的JSON讀入'map [string] interface {}'中,但是後來被卡在迭代部分。 我檢出了mergo庫,以及一堆堆棧溢出答案等,但來自一個紅寶石背景它似乎都比ruby :)難一些:) – jaxxstorm