2017-07-14 58 views
1

我需要与一个在其响应中返回元素负载的API集成。是否有可能将JSON部分反序列化为结构?

是否有可能选择我想要的字段?json库或我是否需要反序列化整个响应?

+2

如果您的代码太复杂,无法发布,您需要构建一个展示该示例的MCVE。在你的问题上多加一点努力很可能会鼓励其他人付出一些努力来回答。另外,如果你的代码太复杂而无法制作MCVE,那么它可能真的只是布局不好(大概是不可能正确地进行单元测试),所以只需清理/写入MCVE就可以帮助你回答问题。否则,如果代码不相关,那么说明你没有包含它的说明也不是。 – CollinD

回答

4

是的。

下面是具有JSON 2场和仅解码一个的一个示例:

jsonString := `{"a": 1, "b": 2}` 
var rec struct { 
    A int `json:"a"` 
} 
err := json.Unmarshal([]byte(jsonString), &rec) 
if err != nil { 
    log.Fatalf("json.Unmarshal() failed with '%s'\n", err) 
} 
fmt.Printf("rec: %+v\n", rec) 

当运行它打印:

rec: {A:1} 

即字段“一”在JSON被解码和字段“B “被丢弃了。

查看https://play.golang.org/p/89tu-ZC4pR查看完整示例。

+0

这真的很有用。谢谢。 – jbrown

相关问题