我是新杰克逊。我想用现有的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对象并附加新对象并再次覆盖该文件)?
提前感谢您的帮助。
答案 0 :(得分:2)
root是ArrayNode,而不是ObjectNode