Удаление пар ключ / значение из файла JSON в определенном диапазоне с помощью Java - PullRequest
0 голосов
/ 08 мая 2020

Мне кажется, что я действительно близок, но я не могу понять, как удалить пары ключ / значение в определенном диапазоне в записи объекта JSON, используя Java вместо поиска определенных записей c. В дополнение к, возможно, плохому синтаксису, вероятно ли, что моя библиотека JSON jar неправильно считывает типы объектов на основе сообщения об ошибке? Я настроил IntelliJ для чтения файла .jar в разделе внешней библиотеки, поэтому я не уверен, является ли это размещение jar или способ, которым я написал код (или оба)

public static void removeTheFields(Object object) {
        if (object instanceof JSONArray) {
            JSONArray array = (JSONArray) object;
            for (int i = 0; i < array.size(); ++i) removeTheFields(array.get(i));
        } else if (object instanceof JSONObject) {
            JSONObject json = (JSONObject) object;
            JSONArray names = (JSONArray) json.keySet();
            if (names == null) return;
            for (int i = 3; i < names.size() - 8; ++i) {
                String key = names.get(i).toString();
                    json.remove(key);
            }
        }
    }
}
public static void main(String[] args) {
        try {
            JSONObject obj = (JSONObject) new JSONParser().parse(new FileReader("edu01.json"));
            removeTheFields(obj);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

Exception in thread "main" java.lang.ClassCastException: class org.json.simple.JSONArray cannot be cast to class org.json.simple.JSONObject (org.json.simple.JSONArray and org.json.simple.JSONObject are in unnamed module of loader 'app')

...