Так что у меня проблемы с созданием Json-файла правильно. Что у меня есть: 1. Gson ЛИЭС 2. Попытка написать в Json нового пользователя, как это:Как правильно создать json-файл
public static void writeUserBD(String name, String surname, int age) {
//writing in a Json format
JSONObject writeOne = new JSONObject();
JSONArray arr = new JSONArray();
for(int i = 0; i< arr.size() ; i++)
{
writeOne.put("name", name);
writeOne.put("surname", surname);
writeOne.put("age", new Integer(age));
arr.add(writeOne);
writeOne = new JSONObject();
}
//creating dir&file and writing in it
try {
File dir = new File("Test");
dir.mkdir();
File f = new File("Test/TestUser.json");
if (!dir.exists()) {
dir.mkdirs();
} else if (!f.exists()) {
f.createNewFile();
}
//here comes writing encoding problem ! ! !
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(f.getAbsoluteFile(), true), Charset.forName("UTF-8")));
try {
bw.write(arr + " " + "\n");
} finally {
bw.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Но если я перезагрузить мое приложение и попытаться написать новый будет писать новый JSONObject и мой выход будет, как:
[{}]
[{}]
в этом случае я не могу разобрать мой файл JSON (для создания простой Логин) получаю ошибку им, как "unexcpected token [[]"
Как я понял, это происходит becouse более 1 JSONObject в файле.
Так что мой вопрос: как я могу записать новые данные пользователей в файл JSON (даже если приложение было перезагружена) в нужном формате, что я могу pasre, чем /, например, [{}, {}, {}]
([{}, {}, {}]) не является действительным JSON, и это [{}, {}, {}] – rkosegi
как вы получаете [{}] [{}]. .. вы либо записываете его дважды, либо добавляете к текущему тексту в файле ... – Tschallacka
@MichaelDibbets Im, получая это, если я перезагружу свое приложение и вводят новые данные. Любой вход создает [{}] Jsonobject следующим образом: – TheOriginalNickname