我使用excel在CSV中输入数据。我想将CSV转换为如下所示的JSON:
[
{
"Sr": 1,
"Name": ["Steven ", " Smith "],
"Age": 5
},
{
"Sr": 2,
"Name": ["Mark ", " Wood "],
"Age": 2
}
]
没有一个在线转换器转换CSV的方式,其中关键字'Name‘的值是在方括号和双引号由逗号分隔,如上面的例子。
我尝试使用在线转换器将上述JSON转换为CSV,以了解如何将值保存在CSV中。
结果是这样的:
Sr,Name,Age
1,"Steven , Smith ",5
2,"Mark , Wood ",2
现在,再次将其转换为JSON会得到如下结果:
[
{
"Sr": "1",
"Name": "Steven , Smith ",
"Age": "5"
},
{
"Sr": "2",
"Name": "Mark , Wood ",
"Age": "2"
},
{
"Sr": ""
}
]
正如您所看到的,它与顶部的示例不同。这就是我需要将数据放在JSON中的方式。任何帮助都将不胜感激。我只想在CSV文件中键入数据,并将其转换为JSON,其数据类似于顶部的示例。
谢谢!
发布于 2019-08-03 07:52:15
您应该从逗号中选择另一个CSV分隔符(对于LibreOffice和MS Office也是可能的)。所以你的CSV应该是:Sr;姓名;年龄1;"Steven,Smith";5 2;"Mark,Wood";2
要将CSV解析为json,有很多方法。下面是一个简单的函数
const parseCsv = async (url, delimiter) => {
const file = await fetch(url);
const text = await file.text();
const [header, ...strings] = text.split("\n");
const headers = header.replace(/\r$/, "").split(delimiter);
const result = [];
strings.reduce((jsonArray, stringLine) => {
const line = {};
stringLine
.split(delimiter)
.forEach(
(cellData, idx) => (line[headers[idx]] = cellData.replace(/\r$/, ""))
);
jsonArray.push(line);
return jsonArray;
}, result);
return result;
};
https://stackoverflow.com/questions/52848513
复制相似问题