当从端点解组数据时,我几乎总是有一个结构,其中包含我想要从我解组的请求中获取的数据。好吧,有时我想查看返回给我的所有内容,但我不确定其中一些数据是什么,所以我不知道如何在我的结构中定义它。有没有办法让结构可以抓取所有被解组的数据而无需我指定它?这是我认为可行的,但事实并非如此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 关注
- 266 浏览
添加回答
举报
0/150
提交
取消
