我有一个嵌套的重复结构,重复的结构是可变长度.例如,它可能是一个具有重复结构的人物对象,其中包含该人所居住的城市.我想找到该列表中的最后一项说找到当前城市人的生活.是否有一种简单的方法可以做这个,我试着查看jsonpath函数,但我不确定如何使用"within".有什么帮助吗?
在对我的请求的响应中,我得到了一个JSON项目列表
{
"Id": 111,
"Name": "aaa"
},
{
"Id": 222,
"Name": "bbb"
}
Run Code Online (Sandbox Code Playgroud)
我需要声明,在我的回复中,至少有5个项目.使用JSONPath Count时,我只能使用$ ..*来检查确切的值.不幸的是,我不知道返回的确切项目数,只要响应中有超过5项,一切都可以.我可以使用任何JSONPath断言吗?
我已经在WSO2 ESB(4.8.1)中创建了一个API,我想使用请求正文将PUT请求发送到该API。我已经尝试过该示例, 并且想以已定义API的顺序记录属性值。
这是我的请求正文:
这是我尝试记录位置名称的方式:
但我收到这样的错误:
(错误-SynapseJsonPath #stringValueOf。评估JSON路径时出错。返回空结果。错误>>>无效路径)
那么我该如何读取这些值?
嗨,我想使用我的骆驼交换中的标头值作为我的 JsonPath 表达式中的过滤条件。
有这样的想法:
.setBody().jsonpath("$.person[?(@.role=='${headers.role}')]")
Run Code Online (Sandbox Code Playgroud)
简单的表达式不会以这种方式解析。
如何使用 Apache Camel 完成此操作?
我正在研究一个样本NiFi流程,我将Json文件作为输入.我使用EvaluateJsonPath处理器来获取所需路径的值.我已将EvaluateJsonPath的目标设置为"flow-file属性",并使用所需的JsonPath添加了新属性.例如:属性名称:用户名,值:$ .input.username.现在,我将在下一个处理器中需要这个值.所以我想知道我应该使用哪个处理器来读取流文件的属性.
我有一个 json 数据对象,想返回一个特定的值,比如在 XML 中使用 xpath。但是在带有 jsonpath 的 json 上。
文档还可以,但我错过了一个很好的例子。
我正在使用放心进行 API 发布调用并在正文中获得响应。然后我需要接受这个响应并选择特定的字段值并将它们存储为字符串,以便稍后与其他字符串对象进行比较。我编写了 jsonpath 来获取顶级字段值(如 id、status、type、country 等),但是当我必须进入返回的 json 数组中的对象之一时,我无法正确获取格式get() 方法。
以下是返回的 Json 示例:
{
"id": "ABC123",
"status": "NEW",
"type": "PERSONAL",
"country": "United States",
"totalBalances": {},
"availableBalances": {},
"fields": [
{
"fieldType": "mobilephone",
"value": "14216904425",
"fieldId": "personalMobileNumber"
},
{
"fieldType": "email",
"value": "user12345@work.com",
"fieldId": "personalEmail"
},
{
"fieldType": "STRING",
"value": "John Doe",
"fieldId": "individualName"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是我试图格式化以适应 get() 方法的 json 路径,但每次我都会收到一个非法参数异常 (java.lang.IllegalArgumentException: Invalid JSON expression) 我试图让它工作。基本上我需要在数组中识别正确的对象并获取正确的字段值。在这种情况下,这是 fieldId 字段,我想要字段“值”值(John Doe),以便我可以将其保存到 String 对象:
JsonPath pathToAccountName = response.jsonPath();
String accountName = pathToAccountName.get("fields[?(@.fieldId=='individualName')].value")
Run Code Online (Sandbox Code Playgroud)
我使用 …
要求:
我想对JsonNode. 功能可以不同,例如:-lowercasing某些值或将某些内容附加到这些值或用某些内容替换这些值。如何使用Jackson库实现这一目标?请注意,JSON 数据的结构可能不同,这意味着我想构建一个通用系统,该系统将接受一些路径表达式,这将基本上决定在哪里更改。我想使用函数式编程风格,以便我可以将这些函数作为参数传递。
例如:
输入:
{
"name": "xyz",
"values": [
{
"id": "xyz1",
"sal": "1234",
"addresses": [
{
"id": "add1",
"name": "ABCD",
"dist": "123"
},
{
"id": "add2",
"name": "abcd3",
"dist": "345"
}
]
},
{
"id": "xyz2",
"sal": "3456",
"addresses": [
{
"id": "add1",
"name": "abcd",
"dist": "123"
},
{
"id": "add2",
"name": "XXXXX",
"dist": "345"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我基本上必须使用两个函数,lowercase()并且convert_to_number(). 我想申请lowercase()上的所有函数"name"内的所有属性"addresses" …
我正在创建 API 测试,它检查响应是否包含结构中的特定键“textId”:
it('TC-4 /rest/passwords/ should change "password"', function() {
return chai.request(serverurl)
.post('/rest/passwords/')
.set('Content-Type', 'application/json')
.set('Accept', 'text/html')
.set('X-Api-Key', global.apikey)
.set('Cookie', global.cookie)
.send({password: "password"})
.then(function(res) {
res.should.have.status(200);
res.should.be.json;
console.log('TC-4 /rest/passwords/: %j\n', res.body);
res.body.should.have.all.keys(['textId']);
});
});
Run Code Online (Sandbox Code Playgroud)
回应如下:
[{"textId":"PasswordNeedsAtLeastOneDigit","parameters":{}},{"textId":"PasswordNeedsAtLeastOneUpperCaseCharacter","parameters":{}}]
Run Code Online (Sandbox Code Playgroud)
我试过:
res.body.should.have.property('textId');
res.body.should.have.nested.property('textId');
res.body.should.have.all.keys(['textId']);
res.body.should.have.all.nested.keys(['textId']);
Run Code Online (Sandbox Code Playgroud)
他们都没有工作
我正在尝试以 JSON 检索一些数据,但是,我正在努力以正确的方式对其进行格式化,以下是一个示例:
CREATE TABLE #test (id int identity(1,1), name varchar(100), EntityType VARCHAR(10))
insert into #test values('Dell','PC')
insert into #test values('Microsoft','CO')
insert into #test values('MAC','PC')
insert into #test values('APPLE','CO')
SELECT * FROM #test WHERE EntityType = 'PC' FOR JSON PATH, ROOT('??')
drop table #test
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用 root 但没有成功
我正在寻找这个结果,它是一个对象,然后是一个按列分组的数组
{
"CO": [
{
"id": 1,
"name": "Dell",
},
{
"id": 2,
"name": "Microsoft",
},
]
"PC" :[
{
"id": 3,
"name": "MAC",
},
{
"id": 4,
"name": "APPLE",
}]
}
Run Code Online (Sandbox Code Playgroud) jsonpath ×10
json ×7
java ×2
apache-camel ×1
apache-nifi ×1
assertions ×1
chai ×1
chai-http ×1
jackson ×1
mocha.js ×1
python ×1
rest-assured ×1
soapui ×1
sql ×1
sql-server ×1
t-sql ×1
wso2 ×1
wso2esb ×1