处理动态 JSON 架构解码

我有一个发送/解析请求的Go HTTP客户端。JSON-RPC


HTTP 开机自检请求 :


[

   {"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


慕容708150
浏览 89回答 1
1回答

蝴蝶刀刀

您可以通过将结果取消编组为 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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go