【问题标题】:JSON object from MySQL result [closed]MySQL结果中的JSON对象[关闭]
【发布时间】:2013-08-30 14:01:09
【问题描述】:

据我了解,在对服务器端 (PHP) 进行 Ajax 调用时,可以指定调用允许的数据类型。我经常看到这是一个 JSON 对象。

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

这是有道理的,因为 JSON 是用于 Javascript 的,所以它希望其数据具有相应的格式,但为什么不直接使用获取的查询结果对象,就像在 PHP 视图中所做的那样?

【问题讨论】:

  • 你将如何通过 HTTP 传递数组?采用哪种格式?谁来解码这种格式?
  • "since JSON is for Javascript" - 实际上不是,尽管它确实适用于 JS。更准确地说它是受 JavaScript 启发的;它是一种基于字符串的数据传输格式,适用于大多数语言。
  • 感谢您的意见。我认为它是用于 javascript 从它的名字。

标签: php javascript mysql ajax json


【解决方案1】:

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 重新创建它会更容易。

【讨论】:

  • 谢谢。我所说的 PHP 视图是在表示层中回显结果。
【解决方案2】:

由于 AJAX 调用被一个 javascript 函数触发(不是吗?)并且结果被返回到一个 javascript 回调函数,您正在使用 javascript(在客户端)。

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

【讨论】:

    猜你喜欢
    • 2017-04-20
    • 2023-01-26
    • 1970-01-01
    • 2016-01-26
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多