Запись и чтение JSON ( через GSON )

Всем привет, пытался сделать запись и чтение JSON,однако не вышло ( корректно уж точно );

Как я записываю:

/// Это выполним после загрузки и установки
        ModModelClass MMC = new ModModelClass(id, name, category, filesize, null);
        try (FileWriter writer = new FileWriter(Environment.getExternalStorageDirectory() + "/Android/data/" + getPackageName() + "/mods_installed_db.json", true)) {
            writer.write(gson.toJson(MMC) + "\n");
            writer.flush();
        } catch (IOException ex) {
            System.out.println(ex.getMessage());
        }

P.S Код выше так же производит неверную запись, дело в том, что после добавления 2-ой строки и далее, структура становится невалидной.

Хотелось бы при записи записывать не просто строку JSON-а, а подобную структуру:

{
"id": 1,
"title": "Текст",
"author": "Автор",
"downloadlink": "Ссылка",
"status": 1,
"previewimgurl": "Ссылка",
"rating": 0,
"workshoplink": "Ссылка",
"description": "Текст",
"mindescript": "Мин деск",
"modsize": 60.1

},

Как я пытался искать и читать ( по сути тут, я хотел просканировать весь JSON для сверки id из его строки, с переменной id из моего кода, если id совпадают, значит ресурс устаовлен, если нет, то наоборот, но получилось весьма топорно (( и ниего увы не заработало )))

Gson g = new Gson();
    FileReader x = null;
    try {
        x = new FileReader(Environment.getExternalStorageDirectory() + "/Android/data/" + getPackageName() + "/mods_installed_db.json");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
    BufferedReader varRead = new BufferedReader(x);
    JSONParserModel jsm = g.fromJson(varRead, JSONParserModel.class);
    String jsid = jsm.id;
    if(jsid == id) {
        StatInfiusBool = true;
        statusinfo = "Установлен";
    }
    else{
        StatInfiusBool = false;
        statusinfo = "Не установлен";
    }

Ответы (1 шт):

Автор решения: Barmaley

Если я правильно понял, вы пытаетесь добиться, что Json был читабельным, а не слитной строкой по умолчанию. На то существует способ pretty print:

Gson gson = new GsonBuilder().setPrettyPrinting().create();
writer.write(gson.toJson(MMC));
writer.flush();
→ Ссылка