admin管理员组

文章数量:814923

我如何在Node.js中将对象数组形式的字符串转换为JSON

这是我的字符串

let data = "[{Date: 2002,Entity Taking Action: Maryland Board ,Action Taken: Reprimand},{Date: 2002,Entity Taking Action: Massachusetts Board,Action Taken: Consent order because of Maryland Board},{Date: 2007,Entity Taking Action: North Carolina Medical Board,Action Taken: Consent order because of Maryland Board action},{Date: 2013,Entity Taking Action: NC Medical Board,Action Taken: Letter of concern for not reporting previous NC consent order on reactivation of NC licence}]"
回答如下:
  1. 您最好的解决方案可能是要求该字符串的提供者不要认为他提供的内容有用。很有可能这是一个小错误,或者至少在他方面付出了很少的努力,他才能提供更好的结构化格式(至少直接使用yaml或其他格式)

  2. 如果您仍然需要做自己的事,可以

    • 尝试将字符串转换为可解析的字符串

let data = "[{Date: 2002,Entity Taking Action: Maryland Board ,Action Taken: Reprimand},{Date: 2002,Entity Taking Action: Massachusetts Board,Action Taken: Consent order because of Maryland Board},{Date: 2007,Entity Taking Action: North Carolina Medical Board,Action Taken: Consent order because of Maryland Board action},{Date: 2013,Entity Taking Action: NC Medical Board,Action Taken: Letter of concern for not reporting previous NC consent order on reactivation of NC licence}]"
const t = data
  .replace(/([{,]\s*)([^{:]*)(:)/g, '$1"$2"$3') // replace keys
  .replace(/(:\s*)([^},]*)([,}])/g, (all, $1, $2, $3) => { // replace values
    let val = $2
    if (parseInt($2) != $2) {
      val = `"${$2}"`
    }
    return `${$1}${val}${$3}`
  }) // replace values
console.log('t : ', JSON.parse(t))

本文标签: 我如何在Nodejs中将对象数组形式的字符串转换为JSON