如何在Android内部存储(Kotlin)中将JSON对象附加到JSON数组文件

qni6mghb  于 2022-11-03  发布在  Android
关注(0)|答案(2)|浏览(181)

我目前有一个问题,我在内部存储中保存了一个json文件,我希望在该文件中追加一个新对象。
我是这样制作文件的:

val fOut = openFileOutput("notes.txt", MODE_PRIVATE)
val str = "[]"
fOut.write(str.toByteArray())
fOut.close()

这将导致文件如下所示:

[]

到目前为止一切顺利,现在我需要向json文件追加一个新对象:

val fileOutputSream = openFileOutput("jsonfile.json", MODE_APPEND)
fileOutputSream.write(obj.toString().toByteArray())
fileOutputSream.close()

但结果总是这样:

[]{"item1": "value1", "item2": "value2", "item3": "value3"}

而不是这样:

[
    {"item1": "value1", "item2": "value2", "item3": "value3"}
]
nbewdwxp

nbewdwxp1#

尝试用Java代码编写json

JSONObject  jsonObject;

            try {
                Writer output = null;
                File file = new File(Path +"/jsonfile.json");
                output = new BufferedWriter(new FileWriter(file));
                output.write(jsonObject.toString());
                output.close();
                Toast.makeText(getApplicationContext(), "Composition saved", Toast.LENGTH_LONG).show();

            } catch (Exception e) {
                Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();
            }
35g0bw71

35g0bw712#

我认为您需要:
1.从目标文件中获取内容,将其存储在一个变量中,在您的示例中应该是一个JSONArray对象。
1.将您的JSONObject附加到JSONArray
1.将新的JSONArray写入目标文件,是的,覆盖它。

相关问题