PHP→JS通过AJAX -数据类型


PHP -> JS via AJAX - data types

我需要使用AJAXPHPJS获得array

我使用标准ajax调用,数据作为对象返回。

我可以很容易地使用Jquery来循环。

在阅读了网上的许多帖子后,通常的做法是发回JSON

我的问题是,为什么使用JSON。如果我要使用它,我需要将数组转换为JSON PHP端(服务器端),然后在JS(客户端)中解析它,以便能够循环使用它。

如果需要这些额外的步骤,为什么要使用JSON呢?为什么不直接从PHP解析回一个对象呢?

我错过了什么明显的东西吗?

我使用标准ajax调用,数据作为对象返回。

不,不是。数据以某种(可能)文本格式(如JSON)发送。

然后一些代码将其转换为对象。例如,如果服务器发送回Content-Type: application/json报头,或者您在选项中指定了dataType: "json", jQuery将自动执行此操作。

我的问题是,为什么使用JSON。

:

  • 基于JavaScript的原生数据模型(其中包括程序员最关心的东西:有序数组,命名事物的集合,数字,布尔值和字符串)
  • 简单
  • 支持多种语言的库

如果需要这些额外的步骤,为什么要使用JSON呢?为什么不直接从PHP解析回对象呢?

你不能从PHP传递一个"对象",因为对象只是一个程序对计算机RAM中一堆数据如何相互关联的理解。

把它发送到另一台电脑就像把你脑子里的想法发送到另一个大脑。

你必须首先把它们翻译成一种共享的、可传递的语言。

JSON is - you right - the way.

JSON很简单&快速用JavaScript解析。JSON: JavaScript Object Notation.

更容易,解析速度比xml更快,这是过去的老方法。

Json或XML,导致Php对象不能传递给JS…但是您可以很容易地转换:json_encode(phparray)

就是这样:json是php和JS的通用方式…

答案很简单:

PHP是由PHP的zend引擎解析的服务器端语言,而javascript是由javascript引擎解析的客户端语言

所以javascript引擎无法理解PHP对象,这就是为什么我们将PHP对象转换为JSON对象,这是PHP的zend引擎以及javascript引擎所理解的。