回显json_encode并在ajax中返回它之间的区别

时间:2013-06-28 15:58:06

标签: php json

我认为这可能被归类为基本但我很好奇。为什么你必须解析从ajax调用返回的json编码数据,而不是在主加载文档中由php回显?

修改:基本上问题是,如果我在两种情况下都有一个名为data的对象,其属性为id,为什么我可以输入

data.id

并且在加载主文档时回显出json对象时返回的值,但是当从ajax调用返回并且没有解析时它会抛出错误吗?

2 个答案:

答案 0 :(得分:1)

通过回应,我认为你的意思是你做了这样的事情:

<script>
  var data = <? echo json_encode($data) ?>;

  alert(data.id);
</script>

如果是这种情况,浏览器知道回显的json是代码,因为它包含在脚本标记中。 JSON是JavaScript的一个子集,所以你在这里真正做的是生成浏览器然后解释的JavaScript代码。

另一方面,Ajax与众不同。当您使用ajax加载某些内容时,它可能是text,xml,csv,html,svg或任何数十种不同的格式。 JSON就像我列出的所有其他数据格式一样,所以你必须告诉javascript引擎它是什么。这就是你必须解析它的原因。它需要知道文本的格式,以便正确解释它。

答案 1 :(得分:0)

您不必,JSON编码的字符串仍然需要从Javascript“解码”。这只是一种更快的方法,可以在返回的字符串中访问ajax调用中的数组元素/属性。