簡體   English   中英

Go JSON 解析接口

[英]Go JSON parsing for interfaces

我有一個 json 如下:

{
  "parameters": {
    "key1": {
        "value": "someStringValue"
      },
    "key2": {
        "innerKey1": {
           "innerKey2": {
             "innerKey3": "someStringValue"
             },
          }
    }
    "key4": {
        "value": 123
    },
    "key5": {
        "value": true
    },
  }
}

如您所見,我可以有不同類型的值(字符串、map、int、bool)。 以下是我定義的結構:

type TestStruct struct {
  Parameters map[string]ParameterValue 
}

type ParameterValue struct {
    Values map[string]interface{}
}

有了這個,我在解析 json 時遇到了問題, key1,key2,key3沒有被編組,它們的值為nil 正確的結構設計應該是什么?

這似乎工作正常:

package main

import (
   "encoding/json"
   "fmt"
)

var s = `
{
   "parameters": {
      "key1": {"value": "someStringValue"},
      "key2": {
         "innerKey1": {
            "innerKey2": {"innerKey3": "someStringValue"}
         }
      },
      "key4": {"value": 123},
      "key5": {"value": true}
   }
}
`

func main() {
   var m struct {
      Parameters map[string]interface{}
   }
   json.Unmarshal([]byte(s), &m)
   fmt.Println(m.Parameters["key1"]) // map[value:someStringValue]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM