2017-01-05 2 views
0

Я новый Джексон. Я хочу добавить новый объект класса с существующим json-объектом. Ниже JSON файл и я мой Java-кодКак добавить/добавить новый объект класса к существующему объекту Json с помощью Jackson в java

Responder.json Файл

[{ "ф": "10.17.16.56", "Статус": "Registered", "registeredAt": «18:49 AM IST, пн, 12 сентября 2016», «managedClusters»: 2}, {"ip": "10.17.16.57", "status": "Pending", "registeredAt": "18:49 AM IST, Пн, 13 сентября 2016 г. "," managedClusters ": 3}, {" ip ":" 10.17.16.58 ", " status ":" UnRegistered "," registeredAt ":" 18:49 AM IST, Mon, Sep 14th 2016 "," managedClusters ": 2}, {" ip ":" 10.17.16.59 ", "статус": "Приостановлено", "registeredAt": "18:49 AM IST, пн, 15 сентября 2016", "managedClusters": 3}]

Java метод:

Я написал метод ниже, чтобы добавить новый объект, но я уверен, что это неправильный способ, поскольку я получаю исключение класса при преобразовании переменной JsonNode в переменную ObjectNode.

static void jsonOperation() throws JsonProcessingException, IOException { 
    ObjectMapper mapper = new ObjectMapper(); 

    JsonNode root =mapper.readTree(new File("/opt/jetty/ucod/data/ss/Responders_dummy.json")); 

    System.out.println("json : "+mapper.writerWithDefaultPrettyPrinter().writeValueAsString(root)); 
    ObjectNode newNode = mapper.createObjectNode(); 

    newNode.put("ip", "10.197.93.62"); 
    newNode.put("status", "Success"); 
    newNode.put("registeredAt", "10/12/2017"); 
    newNode.put("managedClusters", "4"); 
    ((ObjectNode)root).set("", newNode); //Getting class cast exception here 
} 

Может кто-то помощь добавления нового объекта в существующий файл JSON с помощью Джексона (Вместо того, чтобы читать объект JSON из файла и добавления нового объекта и снова перезаписывать файл)?

Заранее за вашу помощь.

ответ

2

Корень - это ArrayNode, а не ObjectNode

Смежные вопросы