如何在java中使用Jackson将新的类对象添加/附加到现有的Json对象

时间:2017-01-05 09:55:30

标签: json jackson

我是新杰克逊。我想用现有的json对象追加一个新的类对象。下面是json文件和我的java代码

Responder.json文件

  

[{" ip":" 10.17.16.56"," status":"已注册"," registeredAt&# 34 ;:   " 18:49 AM IST,星期一,2016年9月12日"," managedClusters":2},{" ip":   " 10.17.16.57"," status":" Pending"," registeredAt":" 18:49 AM IST,   2016年9月13日星期一"," managedClusters":3},{" ip":" 10.17.16.58",     " status":" UnRegistered"," registeredAt":" 18:49 AM IST,Mon,Sep   2016年第14期"," managedClusters":2},{" ip":" 10.17.16.59",     "状态":"暂停","注册":" 18:49 AM IST,星期一,9月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
}

有些人可以帮助使用jackson将新对象附加到现有的json文件(而不是从文件中读取json对象并附加新对象并再次覆盖该文件)?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

root是ArrayNode,而不是ObjectNode