TDH*_*DHM 1 java jsonpath rest-assured rest-assured-jsonpath
我正在使用Json Path库来解析 JSON。我遵循的 json 具有带空格的键:
{
"attributes": {
"First Name": "Jim",
"Last Name": "Rohn"
}
}
Run Code Online (Sandbox Code Playgroud)
为了获取 的值First Name,我编写了如下代码(json其中包含 json 的对象在哪里)-
String firstName = JsonPath.from(json).getString("attributes.First Name");
Run Code Online (Sandbox Code Playgroud)
但它会导致以下错误 -
java.lang.IllegalArgumentException: Invalid JSON expression:
Script1.groovy: 1: expecting EOF, found 'Attributes' @ line 1, column 67.
.First Name
Run Code Online (Sandbox Code Playgroud)
您能否建议如何使用json-path库获取具有空格的键的值?
尝试使用括号表示法,First Name如下所示:
String firstName = JsonPath.from(json).getString("attributes.['First Name']");
Run Code Online (Sandbox Code Playgroud)
更新
很抱歉混淆JsonPath了不同的库。
如果您正在使用com.jayway.jsonpath,请尝试以下方式进行转义:
DocumentContext jsonContext = JsonPath.parse(json);
String firstName = jsonContext.read("$.attributes.['First Name']");
Run Code Online (Sandbox Code Playgroud)
但如果您正在使用***.restassured.json-path,请使用这个:
String firstName = JsonPath.from(json).getString("attributes.'First Name'");
Run Code Online (Sandbox Code Playgroud)