如何使用JsonPath访问JSON数组响应?

时间:2016-01-04 11:12:36

标签: json rest jsonpath rest-assured

如何处理作为Json Array返回REST服务响应的时间:例如:

[{"boolField":true,"intField":991, "StringField":"SampleString"},
 {"boolField":false, "intField":998, "StringField": "SampleString2"}]";

所有博客&我见过的例子并没有解决上面提到的情况。例如,我使用了http://goessner.net/articles/JsonPath/表达式语法,但无法找到解决方案。

例如以下json,如果我想获得所有作者,我可以使用$.store.book[*].author$..author

{ "store": {
    "book": [ 
      { "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "category": "fiction",
        "author": "Evelyn Waugh",
        "title": "Sword of Honour",
        "price": 12.99
      }]}
}

但是,如果像下面那样返回REST服务响应,那么如何从列表中获取所有作者

[
  { "category": "reference",
    "author": "Nigel Rees",
    "title": "Sayings of the Century",
    "price": 8.95
  },
  { "category": "fiction",
    "author": "Evelyn Waugh",
    "title": "Sword of Honour",
    "price": 12.99
   }
]

2 个答案:

答案 0 :(得分:1)

$..author将检索所有作者。

通常,当您的根对象是一个数组时,您可以将$视为一个数组并执行$[0]之类的操作来检查第一个项目(您还会得到一个数组)然而,回来了。)

答案 1 :(得分:0)

在我的情况下[0].author工作(我遗漏了$)。