一般在js中使用parse将String转Json,相对来说比较安全
var A = "{ a: 1 , b : 'hello' }";
var B = "{ 'a': 1 , 'b' : 'hello' }";
var C = "{'a':1,'b':'hello'}";
var D = '{"a":1,"b":"hello"}';
var E = '{ "a" : 1 , "b" : "hello" }';
var F = '{ "a" : 1 ,\n "b" : "hello" }';
var G = '{ "a" : 1 , "b" : window.location.href="https://www.baidu.com" }';
parse:
对象和数组:属性名称必须用双引号包裹;最后一个属性后面不能有逗号。
数值:前导0不能使用(在 JSON.stringify 中将会被忽略,在 JSON.parse 会抛出错误);小数点后面至少有一个数字。
字符串:只有有限的字符能够被转义;不允许某些控制字符;但允许使用Unicode 行分隔符 (U+2028) 和段落分隔符 (U+2029) ;字符串必须用双引号括起来。
例:JSON.parse(A);——>D、E、F可以
var data={
"student" : [
{"name":"孔明","age":17},
{"name":"刘备","age":17},
{"name":"曹操","age":17}
]
eval:
var jsonText=JSON.stringify(data);//将Json转字符串
eval('('+jsonText+')');
以上全可以转化。
eval()不会检查JSON的格式,如果字符串中,存在js的代码会一并执行