Получить JSONNode формы ввода json в Java8 - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть следующий 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, я не хочу его удалять.

Как я могу сделать это правильно?

...