为什么这段js里能解析的json字符串在PHP里不能json_decode呢?

JavaScript016

为什么这段js里能解析的json字符串在PHP里不能json_decode呢?,第1张

简单试了一下,

发现是

因为

这段json格式的字符串中的

所有key都没有用单引号或者双引号包起来

虽然在js中解析是完全可以的,

但php中貌似不支持这种写法。

解析json数据

var json = {  contry:{ area:{ man:"12万",  women:"10万" } } }

//方式一:使用eval解析  

var obj = eval(json)  

alert(obj.constructor)

alert(obj.contry.area.women)  

 

//方式二:使用Funtion函数  

var strJSON = "{name:'json name'}"//得到的JSON  

var obj = new Function("return" + strJSON)()//转换后的JSON对象  

    alert(obj.name)//json name  

    alert(obj.constructor)

       

//复杂一点的json数组数据的解析  

var value1 = [{"c01":"1","c02":"2","c03":"3","c04":"4","c05":"5","c06":"6","c07":"7","c08":"8","c09":"9"}, {"c01":"2","c02":"4","c03":"5","c04":"2","c05":"8","c06":"11","c07":"21","c08":"1","c09":"12"}, {"c01":"5","c02":"1","c03":"4","c04":"11","c05":"9","c06":"8","c07":"1","c08":"8","c09":"2"}]   var obj1 = eval(value1)  

alert(obj1[0].c01) 

 

//复杂一点的json的另一种形式  

var value2 = {"list":[ {"password":"1230","username":"coolcooldool"}, {"password":"thisis2","username":"okokok"}], "array":[{"password":"1230","username":"coolcooldool"},{"password":"thisis2","username":"okokok"}]}  

 

var obj2 = eval(value2)  

alert(obj2.list[0].password)