使用JackSon

我有这样的东西:

    { 
  "Person": {
    "Info": [{
      "name":"Becky","age": 14
      }
    ]
  },"FruitsList": {
    "Fruits": [
      {
        "name": "avocado","organic": true
      },{
        "name": "mango","organic": true
      }
    ]
  },"VegetablesList": {
    "Vegetables": [
      {
        "name": "brocoli",{
        "name": "lettuce","organic": true
      }
    ]
  }
}

我想删除数组FruitsList和VegetablesList甚至是Person数组。 这样的事情。

{ 
  "Person": {
    "Info": [
      "name": "Becky","age": 14
    ]
   },"Fruits": [
    {
      "name": "avocado","organic": true
    },{
      "name": "mango","organic": true
    }
  ],"Vegetables": [
    {
      "name": "brocoli",{
      "name": "lettuce","organic": true
    }
  ]
}

我不太确定在JACKSON库中使用哪种方法来获得正确的结果。非常感谢您的帮助。 提前致谢。

tongfang001 回答:使用JackSon

一种简单的方法是先从根节点中删除FruitsListVegetablesList个节点,然后向其中添加FruitsVegetables,如下所示:

ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readTree(jsonStr);
JsonNode personNode = rootNode.get("Person");
JsonNode fruitsListNode = rootNode.get("FruitsList");
JsonNode vegetablesList = rootNode.get("VegetablesList");
((ObjectNode) rootNode).remove("FruitsList");
((ObjectNode) rootNode).remove("VegetablesList");
((ObjectNode) rootNode).put("Fruits",fruitsListNode.get("Fruits"));
((ObjectNode) rootNode).put("Vegetables",vegetablesList.get("Vegetables"));

System.out.println(rootNode.toString());

顺便说一句,正如我在OP的评论中所述,您的JSON字符串为无效。有效的应该是"Person": {"Info": {...}},...

本文链接:https://www.f2er.com/3161815.html

大家都在问