使用哈希结构访问嵌套的JSON文件

时间:2014-10-15 16:51:40

标签: json go

我有JSON文件,如下所示:

{
  "env": {
      "production": {
         "test": {
             "text": "hello"
          },
          "url": {
             "str": "url1"
          }
      },
      "staging": {
         "test": {
             "text": "hel1lo"
          },
          "url": {
             "str": "url31"
          }
      }
   }
}

有没有办法导入这个文件并进入嵌套的struct格式只是为了staging及其内部字段的顺序正确?

2 个答案:

答案 0 :(得分:0)

虽然,我不熟悉Go及其JSON工具,JSON对象被指定为无序。如果您需要按特定顺序输入,则需要使用数组。

来自json.org:

  

对象是一组无序的名称/值对。对象以{(左括号)开头,以}结尾(右大括号)。每个名称后跟:(冒号),名称/值对用(逗号)分隔。

     

数组是有序的值集合。数组以[以[开头]   (左支架)并以[]右括号结束)。值是分开的   by,(逗号)。

答案 1 :(得分:0)

使用此代码将暂存数据解析为Go值:

type env struct {
  Test struct {
    Text string
  }
  URL struct {
    Str string
  }
}

var v struct {
  Env struct {
    Staging env
  }
}

err := json.Unmarshal(data, &v)
if err != nil {
   // handle error
}

staging :=  v.Env.Staging

playground

JSON对象字段是无序的。 Go标准库不提供按源顺序获取对象字段的方法。