无法使用 JsonPath 库获取带有空格的键的值



我正在使用Json Path库来解析JSON。我有以下json,它有空格键:

{
"attributes": {
"First Name": "Jim",
"Last Name": "Rohn"
}
}

为了得到First Name的值,我编写了这样的代码(其中json是json之上的对象(-

String firstName = JsonPath.from(json).getString("attributes.First Name");

但它导致了以下错误 -

java.lang.IllegalArgumentException: Invalid JSON expression:
Script1.groovy: 1: expecting EOF, found 'Attributes' @ line 1, column 67.
.First Name

您能否建议如何使用json-path库获取具有空格的键的值?

尝试对First Name使用括号表示法,如下所示:

String firstName = JsonPath.from(json).getString("attributes.['First Name']");
<小时 />

更新

很抱歉混淆了不同的JsonPath库。

如果您使用的是com.jayway.jsonpath,请尝试以下转义方式:

DocumentContext jsonContext = JsonPath.parse(json);
String firstName = jsonContext.read("$.attributes.['First Name']");

但是如果你正在使用***.restassured.json-path,请使用这个:

String firstName = JsonPath.from(json).getString("attributes.'First Name'");

你必须用单引号转义

键使用以下代码:

String firstName = JsonPath.from(json).getString("'attributes.First Name'");

如果您使用的是io.restassured.path.json.JsonPath库,则路径表达式中需要转义序列。

String firstName = JsonPath.from(json).getString("attributes."First Name"");
" <-- Insert a double quote character in the text at this point.

因此,路径表达式看起来像(attributes."First Name"),可以通过 JsonPath 库解析

相关内容

  • 没有找到相关文章

最新更新