使用JSONPath,如何从已知键列表中提取单个值?
例如,我想编写一个JSON路径表达式,可以从所有这三个JSON文档中提取Sean
:
{ "firstName": "Sean" }
{ "first_name": "Sean" }
{ "first_name": "Sean", "firstName": "Sean" }
这个例子有些人为,但是我有一个实际的用例,需要这种行为。
我能想到的最好的是表达式$.firstName,first_name
,它适用于#1和#2,但返回#3的数组-我只想要第一个匹配的值。
基本上,我正在寻找一个模拟以下JavaScript代码的JSONPath提取表达式:
json.firstName || json.first_name
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用索引获取json路径。我使用的是放心的,我总是使用类似于下面的代码从json响应中提取值。
Response response=given().contentType(ContentType.JSON).get("http://localhost:3000/posts");
JsonPath jsonPathEvaluator = response.jsonPath();
String fn1 = jsonPathEvaluator.get("firstName[0]");
String fn_1=jsonPathEvaluator.get("first_name[0]");
String fn2=jsonPathEvaluator.get("firstName[1]");
答案 2 :(得分:0)
您可以将所有配对传递给dict,然后提取您的值;或者,如果仅需要值,则可以使用set结构存储键并将值的单独列表分开。