Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JackSon删除JSONArray中的特定数组_Java_Jackson_Gson - Fatal编程技术网

Java 使用JackSon删除JSONArray中的特定数组

Java 使用JackSon删除JSONArray中的特定数组,java,jackson,gson,Java,Jackson,Gson,我有这样的想法: { "Person": { "Info": [{ "name":"Becky", "age": 14 } ] }, "FruitsList": { "Fruits": [ { "name": "avocado", "organic": true }, { "name": "mango", "orga

我有这样的想法:

    { 
  "Person": {
    "Info": [{
      "name":"Becky",
      "age": 14
      }
    ]
  },
  "FruitsList": {
    "Fruits": [
      {
        "name": "avocado",
        "organic": true
      },
      {
        "name": "mango",
        "organic": true
      }
    ]
  },
  "VegetablesList": {
    "Vegetables": [
      {
        "name": "brocoli",
        "organic": true
      },
      {
        "name": "lettuce",
        "organic": true
      }
    ]
  }
}
我想删除数组FruitsList和vegetableList,甚至可能是Person数组。 像这样的

{ 
  "Person": {
    "Info": [
      "name": "Becky",
      "age": 14
    ]
   },
  "Fruits": [
    {
      "name": "avocado",
      "organic": true
    },
    {
      "name": "mango",
      "organic": true
    }
  ],
  "Vegetables": [
    {
      "name": "brocoli",
      "organic": true
    },
    {
      "name": "lettuce",
      "organic": true
    }
  ]
}
我不太确定在JACKSON库中使用什么方法来获得正确的结果。我非常感谢你的帮助。
提前谢谢

一种简单的方法是首先从根节点移除
水果列表
蔬菜列表
节点,然后将
水果
蔬菜
添加回根节点,如下所示:

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字符串是无效的。有效的JSON字符串应该是
“Person”:{“Info”:{…},…

您的输入JSON字符串似乎无效,
Info
不是JSON数组。您可以将输入读入
映射
,删除键并将映射序列化回JSON