以下json字符串未转换为json,因为键不在引号内。
{file:"http://video.test.com/media/myvideo.mp4", image:"/category/dt/filename.png", width:"100%", height:"100%", stretching:"uniform", autostart:true, modes:[{type:"flash", src:"/swf/external/player.swf"}, {type:"html5"}]}
我试过了:
JSON.parse - 它不起作用,因为键不在引号内。
eval('('+ str +')') - 由于某些原因没有转换,由于安全性,对此解决方案也不太感兴趣。
手动插入双引号分隔冒号(:)但我的一个 value,这是一个url,也有一个冒号,如解决方案中给出的: regular expression add double quotes around values and keys in javascript
为什么难以将此字符串转换为json以及如何转换它?
var s = '{file:"http://video.test.com/media/myvideo.mp4", image:"/category/dt/filename.png", width:"100%", height:"100%", stretching:"uniform", autostart:true, modes:[{type:"flash", src:"/swf/external/player.swf"}, {type:"html5"}]}';
console.log(eval('(' + s + ')'));
答案 0 :(得分:1)
主要问题是你从哪里得到字符串,但无论如何,这是一个解决方案。
var obj = eval('(' + str + ')');
var json = JSON.stringify(obj);