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

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库获取具有空格的键的值?

LHC*_*HIN 5

尝试使用括号表示法,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)