来自MySQL结果的JSON对象

时间:2013-08-30 14:01:09

标签: php javascript mysql ajax json

根据我的理解,当向服务器端(PHP)发出Ajax调用时,可以指定调用允许的类型数据。我经常看到这是一个JSON对象。

此Ajax调用是否可以指定其他任何对象类型?

这是有道理的,因为JSON是针对Javascript的,所以它希望它的数据采用相应的格式,但为什么不直接使用获取的查询结果对象,就像在PHP视图上完成它一样?

2 个答案:

答案 0 :(得分:4)

JavaScript和PHP通过HTTP与原始数据相互通信(您可以将它们视为纯文本字符串)。语言解释器在接收到这些原始数据时会处理任何数据转换。因此,即使似乎就像你来回传递JavaScript对象一样,你实际上只是传递JSON格式的字符串,而你的JavaScript库可能会自动解析它们。

PHP只能通过发送此原始数据从HTTP请求返回数据,这通常会导致字符串转换。所以说你有一个查询结果对象 - 你会这样做:

echo $result_object

这可能是任何事情;也许它会回显出“Object(#1Result)” - 或者对象的toString方法。这在JavaScript方面不是很有用。

当你说PHP视图时,我不确定你的意思,但我想你有一些模板引擎。这是用PHP编写的,可以对php对象本身进行操作,以获取需要以某种格式(可能是HTML)发出的数据。

如果您的问题是为什么使用JSON而不是HTML更好 - 那么无论您的选择如何,都有很多优点和缺点。由于其紧凑的尺寸和简单性,JSON通常是一个不错的选择。如果你想真正显示原始HTML,那么发送HTML可能更容易,而不是在客户端上从JSON重新创建它。

答案 1 :(得分:1)

由于AJAX调用是由javascript函数触发的(不是?),结果正在返回到javascript回调函数,你正在使用javascript(在客户端)。

你可以返回JSON,纯文本,XML ......但是你必须关心你使用的是什么格式,此时JSON是最好的选择恕我直言。