我试图从JSON数组中获取每个JSON对象。我通过HTTP发布获得此数据。
我知道我的数据是什么样的:
{ "array":[ { "entity_title":"University of Phoenix", "entity_org_name":"CS Club", "possible_user_name":"Johnny Ive", "posibble_user_email":"Johhny.Ive@uop.edu", "user_position_title":"President", "msg_body_id":4 }, { "entity_title":"University of San Francisco", "entity_org_name":"Marketing club", "possible_user_name":"steve jobs", "posibble_user_email":"steven.job@uop.edu", "user_position_title":"Student", "msg_body_id":5 } ] }
我的示例代码和结构如下所示:
type MsgCreateUserArray struct { CreateUser []MsgCreateUserJson `json:"createUserArray"` } type MsgCreateUserJson struct { EntityTitleName string `json:"entity_title_name"` EntityOrgName string `json:"entity_org_name"` PossibleUserName string `json:"possible_user_name"` PossibleUserEmail string `json:"possible_user_email"` UserPositionTitle string `json:"user_position_title"` MsgBodyId string `json:"msg_body_id, omitempty"` } func parseJson(rw http.ResponseWriter, request *http.Request) { decodeJson := json.NewDecoder(request.Body) var msg MsgCreateUserArray err := decodeJson.Decode(&msg) if err != nil { panic(err) } log.Println(msg.CreateUser) } func main() { http.HandleFunc("/", parseJson) http.ListenAndServe(":1337", nil) }
我不确定如何遍历JSON数组并获取JSON对象,然后仅使用JSON对象。
试试这个作为您的结构,
type MsgCreateUserArray struct { CreateUser []MsgCreateUserJson `json:"array"` } type MsgCreateUserJson struct { EntityOrgName string `json:"entity_org_name"` EntityTitle string `json:"entity_title"` MsgBodyID int64 `json:"msg_body_id,omitempty"` PosibbleUserEmail string `json:"posibble_user_email"` PossibleUserName string `json:"possible_user_name"` UserPositionTitle string `json:"user_position_title"` }
您的entity_title_name名称不正确,顶层名称也不正确array。解码为a之后,MsgCreateUserArray您可以遍历CreateUser切片以获取每个切片MsgCreateUserJson
entity_title_name
array
MsgCreateUserArray
CreateUser
MsgCreateUserJson