golang中的访问数据json

xoefb8l8  于 2022-12-30  发布在  Go
关注(0)|答案(1)|浏览(128)

我有以下JSON文档:

{
  id: int
  transaction_id: string
  total: string
  line_items: [
    {
      id: int
      name: string
    }

  ]  
}

这是我的密码

type Order struct {
    ID            int           `json:"id"`
    TransactionId string        `json:"transaction_id"`
    Total         string        `json:"total"`
    LineItems     []interface{} `json:"line_items"`
}

...
var order Order
json.Unmarshal([]byte(sbody), &order)

for index, a := range order.LineItems {

        fmt.Println(a["name"])
}

我得到了错误:
第一个月
我应该创建一个Item结构体吗?

ia2d9nvy

ia2d9nvy1#

将“行项目”字段类型修改为[]map[string]interface{}

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    type Order struct {
        ID            int                      `json:"id"`
        TransactionId string                   `json:"transaction_id"`
        Total         string                   `json:"total"`
        LineItems     []map[string]interface{} `json:"line_items"`
    }

    var order Order
    err := json.Unmarshal([]byte(`{
        "id": 1,
        "transaction_id": "2",
        "total": "3",
        "line_items": [
            {
                "id": 2,
                "name": "444"
            }
        ]
    }`), &order)
    if err != nil {
        panic(err)
    }

    for _, a := range order.LineItems {
        fmt.Println(a["name"])
    }
}

相关问题