+ -
当前位置:首页 → 问答吧 → json_encode出来的json字符串为什么还要用JS的eval()函数?

json_encode出来的json字符串为什么还要用JS的eval()函数?

时间:2011-11-08

来源:互联网

老师给写的ajax类,为什么当ajax接收返回值的时候还要用eval('('+requestInfo+')')??
php端是用json_encode($arr)。


json_encode()处理过数组的本来不就是JSON对象了吗?不可以直接用吗?还必须得用eval()函数处理一下?

作者: love_u_qt   发布时间: 2011-11-08

json_encode($arr)是PHP里面的用法,将$arr转成json串,如果想把其转成数组用decode来解析,而eval('('+requestInfo+')')是js里面处理JSON解析成数组的方式,否则一个json串,你要怎么用呢

作者: cdx1988   发布时间: 2011-11-08

原因是因为如果不处理的话
json_encode的结果传递给js会被当做普通的字符串处理的,而不是json数组。
所以不能直接使用。

作者: ohmygirl   发布时间: 2011-11-08

用eval可以将json转为js对象,以方便使用!

作者: jordan102   发布时间: 2011-11-08

对js 来说他只是一些字符.他怎么判断是json 还是啥格式...这个其实应该可以封装一下的.

作者: PhpNewnew   发布时间: 2011-11-08

简单来说,你要把json字符串和json对象区分开。这就和php中字符串和数组还有对象不是一种数据类型道理相同。

作者: ShadowSniper   发布时间: 2011-11-08

相关阅读 更多