如何在Java中使用JsonObject在json中的任何位置添加属性

时间:2018-06-27 11:20:26

标签: java jsonnode

我有一个json。可以说:

{
 "id":"101",
 "name":"Saurabh",
 "age":"28"
}

现在,我想在id属性后面添加“ rollNo”:“ 52”。 我该如何在Java中使用jsonNode?

实际上我是使用jsonNode解析此对象的,所以没有pojo映射 我只想要一种通过创建pojo映射将属性添加到任何地方的方法。

3 个答案:

答案 0 :(得分:0)

JsonNode为immutable,用于解析操作。但是,可以将其强制转换为ObjectNode并添加值((ObjectNode)jsonNode).put("rollNo", "52");

答案 1 :(得分:0)

JSON属性未排序。您不能决定将一个“紧随”另一个。它们将保持原样。

这就是它的意思。如果您使用Jackson流JSON编写器,则可以使用它以您喜欢的顺序编写属性。但这只是为了完成您最初不想做的事情而已。当您需要按特定顺序排列内容时,请将它们放入数组中。

答案 2 :(得分:0)

我实际上找到了一种方法。

首先创建一个新的空白节点,然后遍历原始节点并检查条件,然后相应地放置新节点。 这可能只花费一小部分时间,但可以解决此类问题。

这是代码

apply(mtcars[c(2:4,11)], 2, 
      function(x) { 
    mtcars %>%
    group_by(x= !!x) %>% 
      summarise(n=n()) %>% 
      mutate(pc=scales::percent(n/sum(n))) %>% 
      arrange(desc(n)) %>% head()
  }
)