英文:
Json unmarshalling in GO
问题
我正在尝试将服务器返回的JSON响应解组成不同的类型,但是我找不到如何做到这一点。
可以正常工作的类型是:
type ServerResponse struct {
Total int
Data []User
}
type User struct {
Name string
Age int
}
我可以成功地解组JSON并获得预期的User类型。
我想做的是处理各种服务器响应并在之后进行转换。例如:
type ServerResponse struct {
Total int
Data []ServerItem
}
type User struct {
ServerItem
Name string
Age int
}
type Book struct {
ServerItem
Name string
Author string
}
然后,可以使用User(response.Data)
或response.Data.(User)
将其转换为具体类型,以便稍后的函数正确进行类型检查。
请问有人可以告诉我从哪里开始解决这个问题吗?
英文:
I am trying to unmarshal a json response from the server into various types, but I
am not finding how to do it.
The types which work are :-
type ServerResponse struct {
Total int
Data []User
}
type User struct {
Name string
Age int
}
and I can successfully unmarshal the json and receive the expected User type.
What I want to do is handle various server responses and convert after the
fact. eg.
type ServerResponse struct {
Total int
Data []ServerItem
}
type User struct {
ServerItem
Name string
Age int
}
type Book struct {
ServerItem
Name string
Author string
}
Then use either User(response.Data) or response.Data.(User) to make it a
concrete type so that later functions type check correctly.
Please could anyone let me know where to start looking to solve this issue.
答案1
得分: 1
我不认为这可以轻松地完成。只需解码为map[string]interface{}
,然后根据此创建你需要的内容。
英文:
I don't think that this can be done easily. Just decode to map[string]interface{}
and create your stuff from this.
答案2
得分: 0
这里我写了一个简单的程序,用于解析 JSON。你可以在这个链接中查看:http://play.golang.org/p/51eiswgznR。
你可能还想阅读一下 encoding/json 的文档,可以在这个链接中找到:http://golang.org/pkg/encoding/json/。
英文:
Here I wrote a simple program that parses json http://play.golang.org/p/51eiswgznR.
You may also want to read the encoding/json docs http://golang.org/pkg/encoding/json/
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论