使用空字段解析json
如何在没有字段的情况下从json解析数据?我不工作 需要获取int 1234和其他数据(id、所有者) 代码 游乐场:使用空字段解析json,json,parsing,go,Json,Parsing,Go,如何在没有字段的情况下从json解析数据?我不工作 需要获取int 1234和其他数据(id、所有者) 代码 游乐场: 没有。在另一个问题中,他们使用json的“foreach”。其他问题有些不同,是的,但相同的规则适用于您的情况。使用[]接口{}来对结果进行一般性解组,并在以后进行断言。如果您确信数据结构是一致的,那么可以通过实现func(*RawMessage)UnmarshalJSON:,编写自己的解组器。然后,您可以根据需要将原始消息解码为不同的结构。请注意,如果传入的json不一致(例
没有。在另一个问题中,他们使用json的“foreach”。其他问题有些不同,是的,但相同的规则适用于您的情况。使用
[]接口{}
来对结果进行一般性解组,并在以后进行断言。如果您确信数据结构是一致的,那么可以通过实现func(*RawMessage)UnmarshalJSON:,编写自己的解组器。然后,您可以根据需要将原始消息解码为不同的结构。请注意,如果传入的json不一致(例如,总是一个数字后跟一个对象),那么这样做可能会变得非常混乱。
{"response":[1234,{"id":1,"owner":3},{"id":3,"owner":5}]}
package main
import (
"encoding/json"
"fmt"
)
type SectionDB_Exam_Add struct {
id int `json:"id"`
Owner int `json:"owner"`
}
type CreateExamType struct {
Response []SectionDB_Exam_Add
}
var tests = `{"response":[{"id":1,"owner":3},{"id":3,"owner":5}]}`
var how_parse_this = `{"response":[1234,{"id":1,"owner":3},{"id":3,"owner":5}]}`
func main() {
var var_CreateExamType = &CreateExamType{}
var b_Data = []byte(tests)
//var b_Data = []byte(how_parse_this) // How parse 1234 and other data?
json.Unmarshal(b_Data, var_CreateExamType)
for _, mt := range var_CreateExamType.Response {
fmt.Println(mt.Owner)
}
}