2016-02-16 61 views
1

我有一個JSON格式的Solr的響應,看起來像這樣:使盡可能少的改動JSON數據沒有結構golang

現在
{ 
    "responseHeader": { 
    "status": 0, 
    "QTime": 0, 
    "params": { 
     "q": "solo", 
     "wt": "json" 
    } 
    }, 
    "response": { 
    "numFound": 2, 
    "start": 0, 
    "docs": [ 
     { 
      <Large nested JSON element> 
     }, 
     { 
      <Large nested JSON element> 
     } 
    ] 
    } 
} 

,在我Golang的應用程序,我想快速去除「responseHeader 「以便我可以單獨回覆」回覆「。我怎樣才能做到這一點,而不創建大型結構?


編輯1

通過evanmcdonnal的答案是,要解決這個問題,但它有一些細微的拼寫錯誤,這就是我最終使用:

var temp map[string]interface{} 

if err := json.Unmarshal(body, &temp); err != nil { 
    panic(err.Error()) 
} 

result, err := json.Marshal(temp["response"]) 

回答

3

這裏是一個非常簡單的如何快速輕鬆地做到這一點的例子。步驟是;然後,假設沒有錯誤,將其組裝成通用的map[string]interface{},然後僅列出你想要的內部對象。

var temp := &map[string]interface{} 

if err := json.Unmarshal(input, temp); err != nil { 
    return err; 
} 

return json.Marshal(temp["response"]) 
+0

哦哇!非常感謝 –