Jayway.jsonpath: json-path не может фильтровать объекты!JAVA

Программисты JAVA общаются здесь
Anonymous
Jayway.jsonpath: json-path не может фильтровать объекты!

Сообщение Anonymous »

Я пытаюсь исключить поле и сохраняю остальные поля нетронутыми, используя Goessner jsonpath of com.jayway.jsonpath: json-path: 2.9.0 , но, очевидно, это не работает.
Для следующего 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]
Я использую com.jayway.jsonpath: json-path: 2.9.0 в качестве библиотеки, а выражение, которое я написал,

Код: Выделить всё

$.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

Вернуться в «JAVA»