You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaScript代码实现JSON转无引号包裹的CSV?

问题

我用以下JavaScript代码将JSON数据转换为CSV:

function executeScript(event) {
    var json = event.getParameter("jsondata");
    var fields = Object.keys(json[0]);
    var replacer = function(key, value) { return value === null ? '' : value };
    var csv = json.map(function(row){
     return fields.map(function(fieldName){
     return JSON.stringify(row[fieldName], replacer)
  }).join('|');
})
csv.unshift(fields.join('|')); // 添加表头
 csv = csv.join('\r\n');
  event.log(csv);
}

现在得到的输出是:

Username|Identifier|First name|Last name
"booker12"|"9012"|"Rachel"|"Booker"
"grey07"|"2070"|"Laura"|"Grey"
"johnson81"|"4848"|"Craig"|"Johnson"
"jenkins46"|"9346"|"Mary"|"Jenkins"
"smith79"|"5079"|"Jamie"|"Smith"

但我需要的输出是去掉值周围的双引号:

Username|Identifier|First name|Last name
booker12|9012|Rachel|Booker
grey07|2070|Laura|Grey
johnson81|4848|Craig|Johnson
jenkins46|9346|Mary|Jenkins
smith79|5079|Jamie|Smith

输入的JSON数据如下:

[{
  "Username": "booker12",
  "Identifier": "9012",
  "First name": "Rachel",
  "Last name": "Booker"
}, {
  "Username": "grey07",
  "Identifier": "2070",
  "First name": "Laura",
  "Last name": "Grey"
}, {
  "Username": "johnson81",
  "Identifier": "4848",
  "First name": "Craig",
  "Last name": "Johnson"
}, {
  "Username": "jenkins46",
  "Identifier": "9346",
  "First name": "Mary",
  "Last name": "Jenkins"
}, {
  "Username": "smith79",
  "Identifier": "5079",
  "First name": "Jamie",
  "Last name": "Smith"
}]

请问怎么修改代码才能得到不带双引号的CSV输出?

解决方案

问题根源是你使用了JSON.stringify()方法,它会自动给字符串类型的值添加双引号。只需要直接返回字段值,同时保留null值的处理逻辑即可。修改后的代码如下:

function executeScript(event) {
    var json = event.getParameter("jsondata");
    var fields = Object.keys(json[0]);
    var replacer = function(value) { return value === null ? '' : value };
    var csv = json.map(function(row){
     return fields.map(function(fieldName){
     return replacer(row[fieldName])
  }).join('|');
})
csv.unshift(fields.join('|')); // 添加表头
 csv = csv.join('\r\n');
  event.log(csv);
}

修改说明

  1. 移除JSON.stringify()调用,直接返回经过处理的字段值
  2. 简化replacer函数,无需处理key参数,直接判断值是否为null即可
  3. 处理后的字段值会以原始字符串/数值形式加入CSV,不会附加双引号

内容的提问来源于stack exchange,提问作者Neha Parmar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 10:13:26