Для следующего JSON,
для следующего JSON,
Код: Выделить всё
{
"firstName": "John",
"lastName" : "doe",
"age" : 26,
"address" : {
"streetAddress": "naist street",
"city" : "Nara",
"postalCode" : "630-0192"
},
"phoneNumbers": [
{
"type" : "iPhone",
"number": "0123-4567-8888"
},
{
"type" : "home",
"number": "0123-4567-8910"
}
]
}
< /code>
Я пытаюсь извлечь значение полей, за исключением города, то есть я ожидаю, что вывод будет как, < /p>
[naist street, 630-0192]
Код: Выделить всё
$.address[?(@!=$.address.city)]
< /code>
Но он не дает желаемого вывода. При попытке онлайн -инструмента Goessner JsonPath I достиг желаемого вывода.package org.example;
import com.jayway.jsonpath.JsonPath;
public class JavaJsonPath {
public static void main(String[] args) {
String json = """
{
"firstName": "John",
"lastName" : "doe",
"age" : 26,
"address" : {
"streetAddress": "naist street",
"city" : "Nara",
"postalCode" : "630-0192"
},
"phoneNumbers": [
{
"type" : "iPhone",
"number": "0123-4567-8888"
},
{
"type" : "home",
"number": "0123-4567-8910"
}
]
}
""";
Object filtered = JsonPath.read(json, "$.address[?(@ != $.address.city)]");
System.out.println("Without 'city': " + filtered);
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... jects-with