當從端點解組數據時,我幾乎總是有一個結構,其中包含我想要從我解組的請求中獲取的數據。好吧,有時我想查看返回給我的所有內容,但我不確定其中一些數據是什么,所以我不知道如何在我的結構中定義它。有沒有辦法讓結構可以抓取所有被解組的數據而無需我指定它?這是我認為可行的,但事實并非如此resp, err := httpClient.Get("/api/stuff")data, _ := ioutil.ReadAll(resp.Body)var myStruct struct{}json.Unmarshal(data, myStruct)
2 回答

動漫人物
TA貢獻1815條經驗 獲得超10個贊
如果您事先不知道 JSON 對象的組成,您可以解組為map[string]interface{}
.
var myMap map[string]interface{} json.Unmarshal(data, &myMap)
在此處查看示例。

Qyouu
TA貢獻1786條經驗 獲得超11個贊
如果您不知道如何定義結構,那么也許您應該使用映射。 它非常適合解組 JSON。這是一個示例,說明如何在不確切知道您收到什么數據的情況下執行此操作:
func parseJSON(r *http.Request) (map[string]interface{}, error) {
var postData interface{}
decoder := json.NewDecoder(r.Body)
err := decoder.Decode(&postData)
if err != nil {
return nil, err
}
return postData.(map[string]interface{}), nil
}
現在您至少有了每條數據的字符串名稱,這應該讓您的應用程序了解如何處理它。
- 2 回答
- 0 關注
- 188 瀏覽
添加回答
舉報
0/150
提交
取消