【发布时间】:2019-10-08 16:45:32
【问题描述】:
我正在尝试将数据保存到 JSON 文件,第一次保存正常,第二次保存破坏了 JSON。这是我的数组的样子(例如简化):
var myArray1 = new Array ({
Ex1 : "Ex1",
Ex2 : "Ex2",
Ex3 : "Ex3"
});
我将它保存为 JSON,它返回有效的 json,我读取它并尝试在这个数组之上保存另一个这样的数组:
var myArray2 = new Array ({
Ex4 : "Ex4",
Ex5 : "Ex5",
Ex6 : "Ex6"
});
我尝试使用 concat 在 Chrome 控制台中创建它:
0:
Ex1: "Ex1"
Ex2: "Ex2"
Ex3: "Ex3"
__proto__: Object
1:
Ex4: "Ex4"
Ex5: "Ex5"
Ex6: "Ex6"
__proto__: Object
length: 2
__proto__: Array(0)
我假设现在使用 JSON.stringify 会使它成为有效的 JSON,但是当我将它保存到 JSON 时,它给了我这个:
[{
"chosenDate": "May_2019_1",
"shiftName": "Test 1",
"startTime": "00:00",
"endTime": "01:00",
"payPerHour": "1.00"
}]
[{
"chosenDate": "May_2019_16",
"shiftName": "Test 2",
"startTime": "01:00",
"endTime": "02:00",
"payPerHour": "2.00"
}]
第一个 JSON 在第一个“]”之前是完全相同的,所以 concat 最终什么也没做?我该如何解决这个问题才能生成有效的 JSON?
我不知道它是否会改变任何东西,但我正在尝试制作一个 ionicv1 应用程序,使用 cordova-file-plugin 来保存 JSON。
编辑: 所以我不确定为什么,但是当尝试在 Chrome 中使用我的示例时它可以工作,但是当通过我的应用程序运行它时,实际上将它放在一个文件中并从文件中读取它会返回损坏的 JSON。流程是:
- 创建第一个数组。
- 将其字符串化并写入 json 文件。
- 读取文件并解析 json。
- 创建第二个数组。
- 连接数组。
- 字符串化并写入 json。
并且该文件具有损坏的 JSON。我猜在写它或读东西的地方不太对劲,也将它与可能的重复帖子区分开来。
【问题讨论】:
-
JSON 文件很难追加(应该读取整个文件,然后解析,然后重写)。我建议改用JSONL - 一种几乎与 JSON 一样易于使用的格式。
标签: javascript json ionic-framework cordova-plugins