json - 从 JSON 解析嵌套对象数组到 Go

标签 json parsing go struct

我查看了许多有关如何使用 go 解析 JSON 的示例,并且了解了基础知识。但是我无法获得要正确解析的对象数组。我已经为该对象创建了一个结构,但没有骰子!

这是一个关于它的 Playground : <知识库> playground

package main

import (
    "encoding/json"
    "fmt"
)

type Outer struct {
    Number  int      `json: "number"`
    Message string   `json: "message"`
    Person  []Person `json: "person"`
}

type Person struct {
    craft string `json: "craft"`
    name  string `json: "name"`
    }

func main() {
    text := `{"people": [{"craft": "ISS", "name": "Sergey Rizhikov"}, {"craft": "ISS", "name": "Andrey Borisenko"}, {"craft": "ISS", "name": "Shane Kimbrough"}, {"craft": "ISS", "name": "Oleg Novitskiy"}, {"craft": "ISS", "name": "Thomas Pesquet"}, {"craft": "ISS", "name": "Peggy Whitson"}], "message": "success", "number": 6}`

    textBytes := []byte(text)


    people1 := Outer{}

    err := json.Unmarshal(textBytes, &people1)
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println(people1)
}

最佳答案

你的代码有几个错误:

  1. 您在 json 中有 people 字段,但在结构声明中有 person
  2. Person 结构字段必须以大写字母开头。
  3. 删除 json 标签中的空格 json:"name" 有效而 json: "name" 无效。

这是固定的 version.

关于json - 从 JSON 解析嵌套对象数组到 Go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48555622/

相关文章:

ruby-on-rails - 解析 URL 以提取域的最佳方法是什么?

parsing - 数字的识别属于扫描器还是解析器?

Golang profiler 找不到源代码

java - Robospice 动态映射

javascript - 访问 facebook api 获取餐厅

android - 使用 Android Volley 发送带有正文的 JSON 帖子

c# - 从以编程方式下载的网页中评估/解析 javascript

Swift 和 golang 编码 base64 给出不同的结果

compiler-construction - 如何为 Go 构建 8g 和 6g Go 编译器

html - 更改特定数据的颜色