【问题标题】:Coverting a JavaScript Object in to Json with a double quote(") as a value使用双引号(“)作为值将 JavaScript 对象转换为 Json
【发布时间】:2018-03-13 13:59:42
【问题描述】:

我在转换对象时遇到问题

var obj={"Id":"1-AQC1Y1S","Root Order Item Id":"1-AQC1RSA","SC Long Description":"6.5" TXL/Qn/"};

在上面的对象中,我们在字符串中有一个类似 6.5" 的值。 请帮帮我。 提前致谢。

【问题讨论】:

  • 无关:那不是数组。
  • 转义引用:\"
  • var array1={"Id":"1-AQC1Y1S","Root Order Item Id":"1-AQC1RSA","SC Long Description":"6.5\" TXL/Qn/"}; console.log(array1["SC Long Description"]); 你需要转义双引号,很简单。
  • @Ele 抱歉我的错误更正

标签: javascript json data-conversion


【解决方案1】:

转义如下:6.5\"

再说一遍,这不是一个数组,而是一个对象

var obj={"Id":"1-AQC1Y1S","Root Order Item Id":"1-AQC1RSA","SC Long Description":"6.5\" TXL/Qn/"};
console.log(obj["SC Long Description"])

假设这是固定结构,您可以使用正则表达式捕获组,并在找到组 "SC Long Description" 时进行替换:

var str = '{"Id":"1-AQC1Y1S","Root Order Item Id":"1-AQC1RSA","SC Long Description":"6.5" TXL/Qn/"}'

var found = false;
str = str.replace(/(".*?")(?!\})/g, function(match) {
  if (found && match.endsWith('"')) return match.substring(0, match.length - 1) + '\\"';
  found = found || match === '"SC Long Description"';
  
  return match;
});

var obj = JSON.parse(str);
console.log(obj["SC Long Description"]);

【讨论】:

  • @AddalaShivateja 您是从第三方服务获取该对象作为字符串?
  • 是的,我把它作为字符串@Ele
【解决方案2】:

你需要转义双引号,很简单。

var array1 = {
  "Id": "1-AQC1Y1S",
  "Root Order Item Id": "1-AQC1RSA",
  "SC Long Description": "6.5\" TXL/Qn/"
};
console.log(array1["SC Long Description"]);

【讨论】:

  • 我不能手动转义字符,还有其他方法吗?我将从另一个程序中以字符串形式获取该输入,因此字符串值将发生变化!
  • @AddalaShivateja 你的对象是什么样子你能举个例子吗?
猜你喜欢
  • 2018-01-07
  • 2020-12-22
  • 2022-06-10
  • 2017-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
相关资源
最近更新 更多