我无法弄清楚如何在golang中为这个json对象构建一个结构:
{
"response": [1702487, {
"uid": 150261846,
"first_name": "Олег",
"last_name": "Брейн"
}, {
"uid": 53260546,
"first_name": "Олег",
"last_name": "Лобацевич"
}
]
}
正如您所看到的,数组和计数都没有键名。
如果你能提供帮助,我们会很高兴
答案 0 :(得分:0)
在这种情况下,你必须在某处使用interface {},例如:
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)
}
答案 1 :(得分:0)
Json去做这件事非常方便:
https://mholt.github.io/json-to-go/
如果你可以删除伪造的1702487,这使得它成为一个异类列表,你应该能够轻松地将它解析成一个合适的结构,否则你可能会被使用界面困住:
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,它并不真正属于数组。
答案 2 :(得分:0)
type AutoGenerated struct {
Response []interface{} `json:"response"`
}