使用双引号(“)作为值将 JavaScript 对象转换为 Json
Posted
技术标签:
【中文标题】使用双引号(“)作为值将 JavaScript 对象转换为 Json【英文标题】:Coverting a JavaScript Object in to Json with a double quote(") as a value 【发布时间】: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"]);
你需要转义双引号,很简单。
How to escape double quotes in JSON的可能重复
@Ele 抱歉我的错误更正
【参考方案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 你的对象是什么样子你能举个例子吗?以上是关于使用双引号(“)作为值将 JavaScript 对象转换为 Json的主要内容,如果未能解决你的问题,请参考以下文章