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

处理动态 JSON 架构解码

处理动态 JSON 架构解码

Go
慕容708150 2022-10-04 16:45:39
我有一个发送/解析请求的Go HTTP客户端。JSON-RPCHTTP 开机自检请求 :[   {"id":"1", "method":"action1","params":[]},   {"id":"2", "method":"action2","params":[]},   ...   {"id":"X", "method":"actionX","params":[]}]响应 :[   {"id":"1", "error":null, "result":{...}},   {"id":"2", "error":null, "result":{...}},   ...   {"id":"X", "error":null, "result":{...}}]如何处理那些有效负载,其中键是具有动态架构的对象,具体取决于键的值。resultid
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

您可以通过将结果取消编组为 json 来指示 json 库不要取消封送结果字段。RawMessage,在本例中将响应解封为以下部分:


type result struct{

    ID     string          `json:"id"`

    Err    *string         `json:"error"` // maybe a string?

    Result json.RawMessage `json:"result"`

}

然后,当您知道您正在处理哪个ID时,您可以取消封结到另一个具有您期望的结构的结构中。result.ID


查看完整回答
反对 回复 2022-10-04
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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