如何从json响应中获取数据作为变量
问题描述:
我尝试使用JSONPath获取名为version(第一个)的变量的值,但显然我的解决方案根本无法工作。 我试图使用像$ ..版本或$ .container ..版本的表达式。如何从json响应中获取数据作为变量
我的回应如下:
你粘贴的JSON的{
"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" : { }
}
答
首先是无效的:它缺少2个大括号末(根对象和container
对象不是封闭的)。如果这不是SO上的复制/粘贴错误,但是实际的数据问题,则可能需要首先对其进行更正。
如果我理解正确的,你想从这个字段变量中的值:
"version" : 8
如果是这样,JSON路径应该是:
$.container.version
或
container.version
如果你喜欢绝对的相对路径。
像$..version
或$.container..version
将路径(在periodicity
属性"version" : 0
,并且一个是内部_VALIDATION
一个对象)选择多个版本字段
答
下面的表达式将获得您所希望的结果。 变量:ContainerVersion JSON表达:$ .. container.version 现在存储的版本值可以使用被称为:$ {} ContainerVersion
如果有多个 “版本” 标签在那里,那么你可以通过具有以下表达式, $ .. container.version [*] 可以调用变量$ {} VAR_1,$ {} VAR_2等加载的 “版本” 的所有值.. 添加调试采样器以查看加载的变量名称及其相应的值。
希望以上帮助...