以下json字符串不会转换成json,因为key不在引号内。解析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 - 它不工作,因为键不是引号内。 ('('+ str +')') - 由于某种原因没有转换,由于安全原因,这个解决方案也不太愿意。
手动插入双引号界定冒号(:)但我 价值,这是一个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 + ')'));
你从哪里得到字符串?我会从那里开始尝试获得正确的JSON。 –
'var result = eval('('+ str +')')'应该可以正常工作 –
我从一个可信任的第三方提供的html文件中提取这个字符串,他们不能立即支持发送json。 –