【发布时间】:2018-06-30 20:14:33
【问题描述】:
在处理来自网络服务器的 JSON 响应时存在一些不便。
比如我事先不知道JSON的数据结构(也不想建模),只想从中获取值!
所以,对于 Python,我可以写
value = response["body"][4]["data"]["uid"] //response is a dictionary
但是对于 Golang,我需要为每个元素做断言!
value := response["body"].([]interface{})[4].(map[string]interface{})["data"].(map[string]interface{})["uid"]
//response is a map[string]interface{}
这是我用 golang 写的,以获得我需要的值。你有什么建议吗?对于这种情况有什么有用的提示吗?
【问题讨论】:
-
如果您不知道模型(并且出于某种原因不想知道?),那么您别无选择:您必须对其进行反思。但是,您说这是来自网络服务器的 json 响应,我确定该模型在某处进行了描述。
-
如果你的类型断言有效,那么你显然确实知道数据结构。
-
其实我可以对它建模,但它是一种非常复杂的格式,它不是一个公共API,变化很大。所以我监控http请求/响应并编写代码来自动化它
标签: json dictionary go slice