【问题标题】:Golang try to Unmarshal array of object [closed]Golang尝试解组对象数组[关闭]
【发布时间】:2021-09-29 09:38:02
【问题描述】:

您好,我尝试在 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
    }

    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
}

这是输出结果

Hello, playground
order
[]

【问题讨论】:

标签: arrays json go


【解决方案1】:

看起来你的结构和 Json 标签不匹配。请使用以下重构代码。你可以在操场上找到工作的 sn-p here。订单也必须导出。

    
     type order struct {
        Uid   string `json:"uid"`
        Name  string `json:"name"`
        State string `json:"state"`
    }

    type Root struct {
        Orders []order `json:"q"`
    }

【讨论】:

  • 感谢 Shailesh。它现在正在工作
【解决方案2】:

试试这个结构

type GetOrder struct {
    Orders []struct {
        Uid       string `json:"uid"`
        Name      string `json:"name"`
        State     string `json:"state"`
    } `json:"q"`
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多