正确的结构JSON解组
我无法弄清楚如何建立一个结构在golang此JSON对象:正确的结构JSON解组
{
"response": [1702487, {
"uid": 150261846,
"first_name": "Олег",
"last_name": "Брейн"
}, {
"uid": 53260546,
"first_name": "Олег",
"last_name": "Лобацевич"
}
]
}
正如你可以看到有没有键名数组和计数了。
会很高兴,如果你能帮助
在这种情况下,你必须踢和使用的界面{}的地方,例如:
package main
import (
"fmt"
"encoding/json"
)
type JsObject struct {
Response []interface{}
}
func main() {
bs := []byte(`{"response":[1702487,{"uid":150261846,"first_name":"Олег","last_name":"Брейн"},{"uid":53260546,"first_name":"Олег","last_name":"Лобацевич"}]}`)
var jso JsObject
json.Unmarshal(bs, &jso)
fmt.Printf("%+v\n", jso)
}
的Json去是这种很方便事情:
https://mholt.github.io/json-to-go/
如果你能删除虚假1702487这使它成为一个异质的列表,你应该能够解析它的EAS随手成结构合理,否则你可能被卡住使用界面:
https://play.golang.org/p/w7ebLTuOj9
想必你想要结构的一个这样的数组:
type Person struct {
UID int `json:"uid"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
}
不知道1702487是,但如果请求UID它并不属于数组。
1702487是您在该对象中名字与您相同的人的总人数 –
您的结构非常好,但响应仍然有名为“响应”的键,所以结构看起来会不同。有什么方法可以删除或跳过密钥?就像直接跳入人物对象,忽略“响应”和计数 –
我会清理数组中的int键的数据(您可以离开振荡键)然后使用它。另一种方法是用map [string] interface {}手动解析,据我所见。如果你控制数据,我会改变它来解析,而不是你坚持清理它。 –
type AutoGenerated struct {
Response []interface{} `json:"response"`
}
请解释如何解决这个问题。 –
从哪里可以期待这种回应?什么是'1702487'? – OmarIlias