我正在使用rest assured进行API post调用,并在体内得到响应。然后,我需要接受这个响应,选择特定的字段值,并将它们存储为字符串,以便稍后与其他字符串对象进行比较。我很好地编写了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"
}
]
}
下面是我试图格式化以适应get()方法的json路径,但我每次都得到一个非法参数异常(java.lang.IllegalArgumentException:无效的json表达式),我试图使它工作。基本上,我需要在数组中识别正确的对象,并获取适当的字段值。在本例中,这是fieldId字段,我需要字段“value”值(John Doe),以便将其保存到String对象中:
JsonPath pathToAccountName = response.jsonPath();
String accountName = pathToAccountName.get("fields[?(@.fieldId=='individualName')].value")
我使用https://jsonpath.curiousconcept.com/获取有效的json路径:
$.fields[?(@.fieldId=='individualName')].value
但是我想尽办法把它转换成get()方法可以接受的东西,但没有运气。在这里搜索所有的帖子和放心技术文档也没有帮助。
Rest Assured使用Groovy的GPath。因此您的查询可能如下所示:
JsonPath pathToAccountName = response.jsonPath();
String value = jsonPath.getString("fields.find { it.fieldId == 'individualName' }.value");
在这里可以找到一些示例(它是关于处理XML,但也适用于JSON):http://groovy-lang.org/processing-xml.html
我有点迷失了JSON格式,我必须返回Select2才能正常工作。 我返回的JSON用fiddler捕获: 和我的Select2设置(#FuncionarioID是一个选择输入): }); 我一直在Stackoverflow阅读关于同一主题的问题,我尝试了答案,但没有一个对我有用。关于解决这个问题,你有什么建议吗?我已经尝试返回像这样的对象{“id”:“1060”,“text”:“teste1”},
我见过很多不同的JSON日期格式标准: 哪一个是正确的?还是最好?这方面有什么标准吗?
问题:有时访问请求目标是单个目标,有时是数组 问题:如何根据找到的内容将Jackson反序列化为单个目标或数组? 单目标JSON 目标JSON数组 “目标”POJO: })@生成(“jsonSchema2pojo”)公共类目标实现可序列化{ }
我对. NET/C#的留档感到困惑,关于关键字vs/和。我试图了解易失性字段的确切保证以及这些方法到底在做什么。 我认为volatile提供了发布/获取语义,但它提供了线程的文档。VolatileRead让我怀疑自己的理解是否正确。 这是volatile的语言参考:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/k
我有一个关于bean的正确格式和用法的问题。xml文件。在我的项目中,我通常将这些内容用于我的bean。xml文件(未使用explizit bean声明): 这在WildFly 8和9中运行得很好。但是我在GlassFish 4中有部署问题。在问题中:Glassfish 4,CDI中的简单示例在WELD-001408中失败。我写了一个替代格式: 这里使用了不同的名称空间。GlassFish4似乎很
我正在Windows Server 2016上运行的Jenkins 2.152中创建一个作业,该作业需要从bitbucket上托管的git repo中提取。组织。我通过GitBash测试了ssh密钥,因此我知道它可以工作,并且没有密码短语。当我尝试使用与Jenkins相同的私钥时,会收到一条错误消息。 全权证书设置为 我注意到在另一台Windows Jenkins服务器上,私钥每行的字符数不同 有