У меня есть следующий jsonObject:
{
"payloadTesting": {
"A": "a",
"B": 21,
"node that I want to remove": {
"C": "123",
"D": "456"
}
}
}
То, что я хочу, это go указать местоположение «узла, который я хочу удалить» и удалить его из исходной полезной нагрузки, поэтому мой окончательный json будет:
{
"payloadTesting": {
"A": "a",
"B": 21
}
}
. Для этого я искал библиотеку JsonPath и попытался использовать ее следующим образом:
private String retrievePayload(String payloadToRetrieve, String path) {
return JsonPath
.using(Configuration.builder().jsonProvider(new JsonOrgJsonProvider())
.options(Option.REQUIRE_PROPERTIES).build())
.parse(enrichedFieldName)
.jsonString();
}
Но это решение возвращает мне только имя «узел, который я хочу получить», а не полезную нагрузку без этого узла. И это не проверяет, находится ли тот же самый узел на правильном пути или нет, потому что я только, что удалить этот узел, если он находится на правильном пути.
Например, я хочу удалить узел, только если он находится на root ("$"). Например, если он был на $ .A, я не хочу его удалять.
Как я могу сделать это правильно?