为了账号安全,请及时绑定邮箱和手机立即绑定

将数据解组到任何结构中

将数据解组到任何结构中

Go
呼唤远方 2022-01-17 18:35:09
当从端点解组数据时,我几乎总是有一个结构,其中包含我想要从我解组的请求中获取的数据。好吧,有时我想查看返回给我的所有内容,但我不确定其中一些数据是什么,所以我不知道如何在我的结构中定义它。有没有办法让结构可以抓取所有被解组的数据而无需我指定它?这是我认为可行的,但事实并非如此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)

在此处查看示例


查看完整回答
反对 回复 2022-01-17
?
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

}

现在您至少有了每条数据的字符串名称,这应该让您的应用程序了解如何处理它。


查看完整回答
反对 回复 2022-01-17
  • 2 回答
  • 0 关注
  • 266 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号