我尝试使用JSONPath获取名为version(第一个)的变量的值,但显然我的解决方案根本不起作用。 我试图使用像$ .. version或$ .container..version这样的表达式。
我的回复如下:
{
"container" : {
"version" : 8,
"updatedBy" : "user111",
"updatedOn" : "2017-08-17T16:00:24Z",
"id" : 16,
"dataEnt" : {
"dataEntid" : "dataEntid-000032",
"dataEnttype" : "21"
},
"impact" : [ ],
"operationalFocus" : false,
"periodicity" : {
"version" : 0,
"updatedBy" : "unknown",
"updatedOn" : "2017-03-31T16:44:08Z",
"step" : 1,
"period" : 31084132,
"_VALIDATION" : {
"valid" : true,
"saveAll" : true,
"reasons" : [ ],
"details" : {
"period" : {
"valid" : true,
"saveAll" : true,
"risks" : [ ],
"rmiCode" : null,
"rmiMessage" : null
},
"version" : {
"valid" : true,
"saveAll" : true,
"risks" : [ ],
"rmiCode" : null,
"rmiMessage" : null
},
"step" : {
"valid" : true,
"saveAll" : true,
"risks" : [ ],
"rmiCode" : null,
"rmiMessage" : null
}
},
"rmiCode" : null,
"rmiMessage" : null
},
"_META" : { }
}
答案 0 :(得分:1)
首先,您粘贴的JSON无效:它最后缺少2个大括号(根对象和container
对象未关闭)。如果这不是SO上的复制/粘贴错误,但实际数据有问题,您可能需要先纠正它。
如果我理解正确,您需要变量中此字段的值:
"version" : 8
如果是这样,JSON路径应为:
$.container.version
或
container.version
如果您更喜欢绝对的相对路径。
$..version
或$.container..version
之类的路径会选择多个版本字段("version" : 0
属性中的periodicity
和_VALIDATION
内的对象<} / p>
答案 1 :(得分:0)
以下表达式将为您提供所需的结果。 变量: ContainerVersion JSON表达式: $ .. container.version 现在可以使用以下方法调用存储的版本值: $ {ContainerVersion}
如果有多个&#34;版本&#34;标签在那里,然后你可以加载&#34;版本&#34;的所有值。通过以下表达, 的 $ .. container.version [*] 强> 您可以将变量称为 $ {Var_1} , $ {Var_2} 等。 添加调试采样器以查看加载的变量名称及其对应的值。
希望以上有帮助...