我需要使用AJAX
从PHP
到JS
获得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引擎所理解的。