我使用excel在CSV中键入数据。我想将CSV转换为如下所示的JSON:
[
{
"Sr": 1,
"Name": ["Steven ", " Smith "],
"Age": 5
},
{
"Sr": 2,
"Name": ["Mark ", " Wood "],
"Age": 2
}
]
没有一个在线转换器以这种方式转换CSV,即键“名称”的值在方括号和双引号中,并用逗号分隔,如上例所示。
我尝试使用在线转换器将上述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,其数据类似于顶部的示例。
谢谢!
答案 0 :(得分:0)
您应该从逗号中选择另一个CSV分隔符(LibreOffice和MS Office可以使用)。因此,您的CSV如下所示: 高级;姓名;年龄 1;“史蒂芬·史密斯”; 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;
};