英文:
Golang try to Unmarshal array of object
问题
你好,我尝试解析 JSON 字段中数组的值,但是尝试返回一个空数组,我不知道原因。有人可以帮帮我吗?以下是代码:
package main
import (
"fmt"
"encoding/json"
)
func main() {
fmt.Println("Hello, playground")
type order struct {
Uid string `json:"uid"`
Name string `json:"name"`
State string `json:"state"`
}
type Root struct {
Q []order `json:"q"`
}
s := `{"q":[{"uid":"0x4ecb99b9","name":"Brandon Test Order","state":"draft"}]}`
var r Root
err := json.Unmarshal([]byte(s), &r)
if err != nil {
fmt.Println("error order")
fmt.Println(err)
}
fmt.Println("order")
fmt.Println(r.Q)
return
}
这是输出结果:
Hello, playground
order
[{0x4ecb99b9 Brandon Test Order draft}]
希望对你有帮助!
英文:
Hello I try to unmarshal the value of array inside a fields of json, but try return empty array I don know the reason why. Can any please help me? here is the code:
package main
import (
"fmt"
"encoding/json"
)
func main() {
fmt.Println("Hello, playground")
type order struct {
Uid string `json:"uid"`
Name string `json:"name"`
State string `json:"state"`
}
type Root struct {
q []order
}
s := `{"q":[{"uid":"0x4ecb99b9","name":"Brandon Test Order","state":"draft"}]}`
var r Root
ero := json.Unmarshal([]byte(s), &r)
if ero != nil {
fmt.Println("error order")
fmt.Println(ero)
}
fmt.Println("order")
fmt.Println(r.q)
return
}
here is the output result
Hello, playground
order
[]
答案1
得分: 1
看起来你的结构体和 JSON 标签不匹配。请使用以下重构后的代码。你可以在这里的 playground 找到可工作的代码片段。同时,Orders 必须是可导出的。
type order struct {
Uid string `json:"uid"`
Name string `json:"name"`
State string `json:"state"`
}
type Root struct {
Orders []order `json:"q"`
}
英文:
Looks like your structs and Json tags are mismatching. Please use following refactored code. You can find working snippet on playground here. Also the Orders must be exported.
type order struct {
Uid string `json:"uid"`
Name string `json:"name"`
State string `json:"state"`
}
type Root struct {
Orders []order `json:"q"`
}
答案2
得分: 0
请尝试以下结构:
type GetOrder struct {
Orders []struct {
Uid string `json:"uid"`
Name string `json:"name"`
State string `json:"state"`
} `json:"q"`
}
这是一个Go语言的结构体,用于解析JSON数据。其中包含一个名为Orders
的切片,切片中的每个元素都包含Uid
、Name
和State
三个字段。这个结构体的标签指定了JSON数据中对应字段的名称。
英文:
Try this structure
type GetOrder struct {
Orders []struct {
Uid string `json:"uid"`
Name string `json:"name"`
State string `json:"state"`
} `json:"q"`
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论