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

如何使用JavaScript将含日期的字符串转换为JSON对象适配Web界面

问题背景
  • 业务场景:通过webhook调用API拉取数据库行数据,接口原生返回JSON对象,但当前流程的上下文变量仅支持接收纯文本格式
  • 需求:使用JavaScript将拿到的纯文本字符串转换为可操作的JSON对象,同时完成日期字段的类型处理,供给Web界面使用
问题说明

你提供的待转换字符串不属于标准JSON格式,存在三处不符合规范的问题:

  1. 对象属性未使用双引号包裹
  2. ISO格式的日期值未用引号包裹
  3. 字符串值使用单引号包裹,不符合JSON语法要求
解决方案

你可以通过正则修正字符串格式后再解析,同时批量处理日期字段,代码如下:

// 转换函数:将非标准JSON字符串转为带日期类型的对象数组
function convertRawStrToJson(rawStr) {
  // 第一步:正则修正格式,转为标准JSON字符串
  let standardJsonStr = rawStr
    // 给未加引号的对象属性添加双引号
    .replace(/([a-zA-Z0-9_]+):/g, '"$1":')
    // 把单引号统一替换为双引号
    .replace(/'/g, '"')
    // 给ISO格式的日期值添加双引号
    .replace(/(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)/g, '"$1"')

  // 第二步:解析为JS对象
  let data = JSON.parse(standardJsonStr)

  // 第三步:批量处理日期字段,转为Date类型
  const dateFields = ['invoice_date', 'paid_date', 'Tentative_Payment_Date']
  data.forEach(item => {
    dateFields.forEach(field => {
      if (item[field]) {
        item[field] = new Date(item[field])
      }
    })
  })

  return data
}

// 调用示例
var a = `[
  {
    invoice_id: '797 ',
    invoice_date: 2020-07-06T18:30:00.000Z,
    vendor_name: 'vednorone',
    vendor_no: '92000003',
    invoice_amount: 623,
    paid_date: 2020-10-09T18:30:00.000Z,
    Tentative_Payment_Date: 2020-10-09T18:30:00.000Z,
    po_no: 7971
  },
  {
    invoice_id: '797',
    invoice_date: 2020-07-06T18:30:00.000Z,
    vendor_name: 'vednorone',
    vendor_no: '41010001',
    invoice_amount: 623,
    paid_date: 2020-10-09T18:30:00.000Z,
    Tentative_Payment_Date: 2020-10-09T18:30:00.000Z,
    po_no: 7971
  },
  {
    invoice_id: '797 ',
    invoice_date: 2020-07-06T18:30:00.000Z,
    vendor_name: 'vednorone',
    vendor_no: '41010001',
    invoice_amount: 623,
    paid_date: 2020-10-09T18:30:00.000Z,
    Tentative_Payment_Date: 2020-10-09T18:30:00.000Z,
    po_no: 79
  }
]`
const result = convertRawStrToJson(a)
console.log(result)
注意事项
  • 若后续新增其他日期字段,直接在dateFields数组中追加对应字段名即可
  • 若字符串存在其他特殊格式问题,可根据实际场景补充正则替换规则即可

内容的提问来源于stack exchange,提问作者kesav murthi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 07:54:03