将字符串导出到CSV,并保留在逗号内



我需要将字符串导出到csv。

字符串示例:

[{"name":"ALIASED_LINE_WIDTH_RANGE","value":{"0":1,"1":1}}]

我想在字符串中保留逗号作为逗号而不是分隔符。

所以我想把这个字符串保留为1个元素。我试着用引号"但它不起作用。我想要相同的输出,所以我想要字符串:

[{"name":"ALIASED_LINE_WIDTH_RANGE","value":{"0":1,"1":1}}]

但我希望逗号不要被视为分隔符。

字符串在生成的CSV文件中的格式

  1. 当前字符串中的所有双引号(")都必须替换为两个双引号("")
  2. 然后必须将整个字符串封装在双引号内("...")

给定您的示例字符串:

[{"name":"ALIASED_LINE_WIDTH_RANGE","value":{"0":1,"1":1}}]

这就是它在生成的CSV文件中的格式:

"[{""name"":""ALIASED_LINE_WIDTH_RANGE"",""value"":{""0"":1,""1"":1}}]"
^   ^     ^  ^                         ^  ^      ^   ^  ^    ^  ^     ^

注意在上面的示例中,必要的附加双引号(")由插入符号(^)表示
(插入符号仅用于说明目的)


在JS中声明字符串

在JavaScript中声明CSV字符串时,请考虑以下两个示例:

示例A:如果您的JavaScript编码风格通常使用单引号('),只需将前面的CSV格式字符串封装在单引号内('...')。

例如:

const str = '"[{""name"":""ALIASED_LINE_WIDTH_RANGE"",""value"":{""0"":1,""1"":1}}]"';
//          ^                                                                       ^
console.log(str);

示例B:但是,如果您的JavaScript编码风格通常使用双引号("),则:

  1. 将CSV格式的字符串用双引号括起来("...")
  2. 另外,用反斜杠()转义所有内部双引号

例如:

const str = ""[{""name"":""ALIASED_LINE_WIDTH_RANGE"",""value"":{""0"":1,""1"":1}}]"";
//          ^^   ^ ^     ^ ^  ^ ^                         ^ ^  ^ ^      ^ ^   ^ ^  ^ ^    ^ ^  ^ ^      ^ ^
console.log(str);

注意:正如您所看到的,与示例B相比,示例A是简洁的,但是当运行前面两个代码片段中的任何一个时,记录到控制台的字符串基本上是相同的。它们都会生成所需的CSV格式字符串


附加说明

如果您在问题中提供的字符串是通过使用JSON.stringify()方法将JavaScript对象数组转换为JSON字符串而派生的。那么你可能需要考虑以下几点:

const input = [{
name: 'ALIASED_LINE_WIDTH_RANGE',
value: {
0: 1,
1: 1
}
}];
const str = `"${JSON.stringify(input).replace(/"/g, '""')}"`;
console.log(str)

正如您所看到的,如果您运行前面的代码片段,它还会将所需的CSV格式字符串记录到控制台。它通过利用:来做到这一点

  • input值转换为JSON字符串的JSON.stringify()方法
  • 随后,String的replace()方法将所有双引号(")替换为两个双引号("")
  • 为了将整个结果字符串封装在双引号("...")中,我们使用了Template Literal

相关内容

  • 没有找到相关文章

最新更新