正常写入肯定是要按照规则写入的。也就是JSON.stringify(数据)的方式。
但是并没有,这里我测试了几十次,解决方案是在第一个【]】右中括号处获取最新数据,然后删除后面的数据。
tempList = tempList.substring(0, tempList.indexOf("]"))
返回数据的时候我处理
在进行 JSON 写入操作时出现错位问题,通常是由多种因素导致的,下面从文件操作、编码问题、数据处理、并发操作等方面详细分析可能的原因:
'a'
模式,Java 中的 FileWriter(file, true)
)打开文件写入 JSON 数据时,新数据会直接添加到文件末尾,而不会考虑 JSON 整体结构的完整性。如果原文件是一个完整的 JSON 对象,追加新内容后就会破坏 JSON 格式,造成写入位置看似 “错位”。{"key1": "value1"}
,以追加模式写入 {"key2": "value2"}
后,文件内容变为 {"key1": "value1"}{"key2": "value2"}
,这不再是一个合法的 JSON 数据。read()
方法读取文件后,文件指针会移到文件末尾,如果接着使用 write()
方法写入数据,就会从文件末尾开始追加,而不是覆盖原有内容。{"key1": "value1" "key2": "value2"}
,由于缺少逗号分隔,这不是一个合法的 JSON 对象,写入文件后会造成格式错误。json.dump()
写入文件,虽然不会报错,但不符合常见的 JSON 数据结构(通常是对象或数组),可能会影响后续数据的写入和读取。我在上述问题中找了,但是没有arkTS的方法,全网找也没找到,根据数据集的格式用最恰当是string处理方法解决是最直接的。