Как конвертировать Список <String>в JsonNode.Я хочу удалить элементы из списка - PullRequest
0 голосов
/ 18 мая 2018

Я хочу создать узел JSON с "tags":"Engineering" с

  JSON Example
    {"tags": ["Engineering","Pharmacy","Chemical"],
     "summary":"Science Streams",
     "produces": ["application\/json","application\/xml"]
    }
    ObjectMapper mapper = new ObjectMapper();
    List<Tags> tag = new ArrayList<Tags>();
    ArrayNode array = mapper.valueToTree(tags);
    ObjectNode objNode = mapper.valueToTree(array);
    JsonNode result = mapper.createObjectNode().set("tags", objNode );

. Когда я использую это, я получаю следующую ошибку:

com.fasterxml.jackson.databind.node.ArrayNode incompatible with com.fasterxml.jackson.databind.node.ObjectNode

Я получаю NullPointerException, еслиЯ использую

for(String tag:tagList)

1 Ответ

0 голосов
/ 20 мая 2018

ArrayNode имеет метод удаления, который принимает индекс массива для удаления. Вот простой пример, который анализирует строку JSON, удаляет элементы из массива в этом JSON и печатает его.

ObjectMapper mapper = new ObjectMapper();
JsonNode tree = mapper.readTree("{\"tags\": [\"Engineering\",\"Pharmacy\",\"Chemical\"]}");
ArrayNode tags = (ArrayNode) tree.get("tags");
tags.remove(1);
mapper.writeTree(mapper.getFactory().createGenerator(System.out), tree);

Если вы хотите вместо этого заменить массив одним строковым значением, вы можете сделать:

((ObjectNode) tree).set("tags", new TextNode("Engineering"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...