我有以下JSON字符串
var value = "{'type':'youtube','id':'https://www.youtube.com/embed/JlLGdc71LUc','title':'<strong>mental</strong> <strong>health</strong> & it's benifits for testqaabhi','playerId':'','playerKey':''}";
如果我使用JSON.parse(value);
而不是给我错误。我只想用双引号替换单引号,但在it's
字符串中除外。任何人都可以建议任何方法。我有另一个使用正则表达式替换它的解决方案。但我一次又一次地调用替换方法。所以,如果有人可以最小化它。
value.replace(/^{'/,'{"').replace(/'}$/,'"}').replace(/':'/g,'":"').replace(/','/g,'","')
JSON字符串不正确,来自我无法控制的其他来源。所以无法更新JSON字符串。
答案 0 :(得分:0)
你可以使用它。
var xx="{'type':'youtube','id':'https://www.youtube.com/embed/JlLGdc71LUc','title':'<strong>mental</strong> <strong>health</strong> & it's benifits for testqaabhi','playerId':'','playerKey':''}";
JSON.parse(JSON.stringify(xx));
答案 1 :(得分:0)
值是一个对象。 (从对象文字创建)
JSON.parse()用于将包含JSON表示法的字符串转换为Javascript对象。
您的代码将对象转换为字符串(通过调用.toString())以尝试将其解析为JSON文本。 默认的.toString()返回“[object Object]”,这是无效的JSON;因此错误。
使用JSON.stringify()函数将您的JS对象转换为JSON对象...之后您可以为您的JSON对象调用JSON.parse()
答案 2 :(得分:0)
JSON.parse(value.replace(/'/g,"\"").replace(/"s/g,"'"))
答案 3 :(得分:0)
{
"type": "youtube",
"id": "https://www.youtube.com/embed/JlLGdc71LUc",
"title": "<strong>mental</strong> <strong>health</strong> & its benifits for testqaabhi",
"playerId": "",
"playerKey": ""
}
我将是一个有效的JSON。您的JSON失败,因为您在标题上使用了引号(&#39;)。
使用此
对testqaabhi的好处
而不是
它对testqaabhi的利益