【问题标题】:Problems rendering a json from array struct [duplicate]从数组结构渲染 json 时出现问题 [重复]
【发布时间】:2019-03-11 04:45:11
【问题描述】:

我用 gorilla/mux 和 mysql 数据库做一个简单的休息服务

type Carro struct{
  Ano int `json:"ano" `
  Cor string `json:"cor" `
  Nome string`json:"nome" "`
}

type Revenda struct{
  carro []Carro
  roda string
}

func test(w http.ResponseWriter, r *http.Request) {
 var listas []Carro
 carA := Carro{1975,"Amarelo","Fusca"}
 listas =append(listas,carA)
 carB := Carro{1972,"Azul","Fusca"}
 listas =append(listas,carB)
 revenda := Revenda{carro:listas,roda:"branca"}
 json.NewEncoder(w).Encode(revenda)
}

而回报只有

{}

我做错了什么?

【问题讨论】:

  • JSON 包需要导出您的字段。

标签: arrays json go


【解决方案1】:

您在内部创建结构Revenda 时做错了,您在其中用小写字母声明此结构的字段,但 J Son 包希望应导出字段(变量首字母应以大写字母开头),这就是它不创建的原因J Son 为此,请尝试以下我使用您之前的代码修改的代码。

 type Carro struct {
        Ano  int    `json:"ano"`
        Cor  string `json:"cor"`
        Nome string `json:"nome"`
    }

    type Revenda struct {
        Carro []Carro `json:"carro"`
        Roda  string  `json:"roda"`
    }

var listas []Carro
    carA := Carro{1975, "Amarelo", "Fusca"}
    listas = append(listas, carA)
    carB := Carro{1972, "Azul", "Fusca"}
    listas = append(listas, carB)
    revenda := Revenda{Carro: listas, Roda: "branca"}
    fmt.Println(revenda)
    json.NewEncoder(w).Encode(revenda)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    • 1970-01-01
    • 2016-01-25
    • 2013-07-30
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    相关资源
    最近更新 更多