我可以在同一个json文件中引用另一个对象中的一个json对象吗?

时间:2014-09-24 18:02:06

标签: json

我正在尝试使用json开发一个测试自动化框架来描述数据。  我有一个json文件,如下所示:

{
  "preparation":{
    "configuration":[
      {
        "config1":{
          "src_configfile":"/home/xxx/etc/src_config1.cfg",
          "dest_configfile":"/home/xxx/etc/abc.cfg"
        }
      },
      {
        "config2":{
          "src_configfile":"/home/xxx/etc/src_config2.cfg",
          "dest_configfile":"/home/xxx/etc/xyz.cfg"
        }
      }
    ],
    "executable_info1":[
      {
        "login_info":{
          "hostname":"abc.dw",
          "username":"xyz",
          "password":"*******"
        }
      },
      {
        "command":{
          "folderpath":"/home/xxx/yyy/bin",
          "processname":"sys.exe",
          "parameters":"-d"
        }
      }
    ],
  },
  "execution":[
    {
      "test_case1":{
        "folderpath":"/home/xxx/testscripts",
        "scriptname":"test_case1.py",
       ***???????????Can I access the config1 object here???????????? 
       "config_file"="preparation.configuration[0].config1.dest_configfile"***
      }
    },
    {
      "test_case1":{
        "folderpath":"/home/xxx/testscripts",
        "scriptname":"test_case2.py",
        ***"config_file"="preparation.configuration[1].config2.dest_configfile"***
      }
    }
  ]
}

我需要为不同的测试用例使用不同的配置文件。我可以在执行中引用准备对象的config1对象吗???

1 个答案:

答案 0 :(得分:1)

不,你不能这样做,至少不是直接的。首先,JSON不支持循环引用。

您可以考虑使用诸如jsonpath之类的库来允许您按模式引用元素,但无论值是实际值还是对其他分支的引用,您都倾向于需要先验。