微信小程序云开发导入json数据报错:导入数据库失败, Error: Poll error, 导入数据任务(id:528440)异常,错误信息:line 1, column 750: bare " in non-quoted-field
错误信息如下:
导入数据库失败, Error: Poll error, 导入数据任务(id:528440)异常,错误信息:line 1, column 750: bare " in non-quoted-field
导入数据库失败, Error: Poll error, 导入数据任务(id:528445)异常,错误信息:解析json文档错误,请检查导入文件格式,错误详情如下:invalid character ',' looking for beginning of value
导入JSON格式的要求
1,JSON文件必须是 UTF-8 的编码格式,且其内容类似 MongoDB 的导出格式
2,JSON 数据不是数组,而是类似 JSON Lines,即各个记录对象之间使用 \n 分隔,而非逗号
3,JSON 数据每个键值对的键名首尾不能是 .,例如 “.a”、“abc.”,且不能包含多个连续的 .,例如 “a…b”
4,键名不能重复,且不能有歧义,例如 {“a”: 1, “a”: 2} 或 {“a”: {“b”: 1}, “a.b”: 2}
5,时间格式须为 ISODate 格式,例如 “date”: { “$date” : “2018-08-31T17:30:00.882Z” }
修改格式后重新导入才成功
- 各个记录对象之间使用 \n 分隔,而非逗号
- 去除最外层的[]
{
"ID":"27",
"NAME":"艾薇",
"VOICE":"Aiwei",
"STATE":"0",
"SEX":"1",
"FLAG":"3"
}
{
"ID":"28",
"NAME":"艾宝",
"VOICE":"Aibao",
"STATE":"0",
"SEX":"1",
"FLAG":"3"
}
Node.js 把 JSON 数组转换成符合小程序的要求
const fs = require('fs');
// 读取 json 数据
let jsons = fs.readFileSync('./contents.json', 'utf-8');
jsons = JSON.parse(jsons);
// 将 json 数组转换成字符串
let str = '';
for (const item of jsons) {
// 必须使用 \n 换行区别每个记录
str += JSON.stringify(item) + "\n";
}
// 保存到本地
fs.writeFileSync('./test2.json', str);