Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用哈希结构访问嵌套JSON文件_Json_Go - Fatal编程技术网

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

使用哈希结构访问嵌套JSON文件,json,go,Json,Go,我的JSON文件如下所示: { "env": { "production": { "test": { "text": "hello" }, "url": { "str": "url1" } }, "staging": { "test": { "text": "hel1lo"

我的JSON文件如下所示:

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

有没有一种方法可以导入此文件并转换为嵌套结构格式,只用于暂存及其内部字段的正确顺序?

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

从json.org:

对象是一组无序的名称/值对。对象以{左大括号开始,以}右大括号结束。每个名称后面跟着:冒号,名称/值对之间用逗号分隔

数组是值的有序集合。数组以[ 左括号和右括号结束。值是分开的 用逗号


使用以下代码将暂存数据解析为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
JSON对象字段是无序的。Go标准库不提供按源顺序获取对象字段的方法