为了账号安全,请及时绑定邮箱和手机立即绑定

使用jackson从文件中的Json数组中删除对象

使用jackson从文件中的Json数组中删除对象

茅侃侃 2022-07-14 10:32:18
我的JSON外观如下所示,我需要从中删除第一个对象secondArray。{   "firstArray":[      {         "data1":1,         "data2":"DATA"      },      {         "data1":2,         "data2":"DATA2"      }   ],   "secondArray":[      {         "number":1,         "data":"DATA3",      },      {         "number":2,         "data":"DATA4"      }   ]}这是我到目前为止所拥有的:public boolean remove(SecondArray object) { try {  ObjectNode root = (ObjectNode) mapper.readTree(jsonFile);  ArrayNode array = (ArrayNode) root.get("secondArray");  if (array.path("number").asInt() == object.getId()) {   movieArray.remove(object.getId());  }  System.out.println(array.toString()); } catch (IOException e) {  e.printStackTrace(); }}我的问题是object.getId()得到了idas 数字,但JSON它在“”里面。我该如何进行这项工作,以便我可以删除从中输入的对象secondArray?
查看完整描述

1 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

不要删除数组item。object.id删除它index。您需要遍历数组,找到JSON Object位置number = object.id并将其删除。例子:


import com.fasterxml.jackson.databind.ObjectMapper;

import com.fasterxml.jackson.databind.node.ArrayNode;

import com.fasterxml.jackson.databind.node.ObjectNode;


import java.io.File;


public class JsonApp {


    public static void main(String[] args) throws Exception {

        File jsonFile = new File("./resource/test.json").getAbsoluteFile();


        ObjectMapper mapper = new ObjectMapper();

        ObjectNode root = (ObjectNode) mapper.readTree(jsonFile);

        ArrayNode array = (ArrayNode) root.get("secondArray");


        int numberToRemove = 1;

        for (int i = 0; i < array.size(); i++) {

            if (array.get(i).get("number").asInt() == numberToRemove) {

                array.remove(i);

                break;

            }

        }

        System.out.println(array);

        System.out.println(root);

    }

}

上面的代码打印:


[{"number":2,"data":"DATA4"}]

{"firstArray":[{"data1":1,"data2":"DATA"},{"data1":2,"data2":"DATA2"}],"secondArray":[{"number":2,"data":"DATA4"}]}



查看完整回答
反对 回复 2022-07-14
  • 1 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信