JsonNode details = new ObjectMapper().readTree(ido.getItems());
for (JsonNode obj : details) {
BigDecimal balanceQty = new BigDecimal(obj.get("balanceQty").asText());
BigDecimal countedQty = new BigDecimal(obj.get("countedQty").asText());
BigDecimal diffQty = countedQty.subtract(balanceQty);
((ObjectNode)obj).put("diffQty", diffQty);
}
for (JsonNode obj : details) {
BigDecimal balanceQty = new BigDecimal(obj.get("balanceQty").asText());
BigDecimal countedQty = new BigDecimal(obj.get("countedQty").asText());
BigDecimal diffQty = countedQty.subtract(balanceQty);
((ObjectNode)obj).put("diffQty", diffQty);
}
ivo.setDetails(details);
ido.getItems()为后台数据库存的一个String 类型的json字符串,通过readTree()方法转化为json格式,通过foreach可以获取到每一个键对应的值,如果想向json中插入新的值,就需要用到BigDecimal类,然后通过put方法将值传入到json当中。