【问题标题】:Why is the whole JSON response data in string type?为什么整个 JSON 响应数据都是字符串类型的?
【发布时间】:2014-01-13 09:20:31
【问题描述】:

我正在使用 Laravel3 Response::eloquent

结果为 JSON 格式:{"id":"1"}。但是我想要这样的结果:{"id":1} id 作为数字,而不是字符串类型。

我使用 apache,Content-Typeapplication/json; charset=UTF-8

该问题仅出现在生产系统上。在我的本地主机上,结果是{"id":1}

Apache 或 Laravel3 是否有任何相关设置?

【问题讨论】:

  • 如果您真的在 localhost 和生产环境中体验不同的方式,我建议您使用JSON.parse(responseText);。这将确保您能以各种方式纠正问题。
  • 我在前端使用了angular,我确定不是js问题
  • @sivatumma JSON.parse(); 是一个 JS 函数,而不是 PHP。

标签: json apache laravel-3


【解决方案1】:

我同意@user555。不过,这不是 Laravel 3 或 Laravel 4 的问题,而是 mysqlnd 的问题。

由于错误的 mysql 客户端库,您将表字段类型作为字符串获取,然后 json_encode() 将“字符串”作为输入并编码为“字符串”。

我在这里写了一篇关于我的经验的文章:

http://www.jmilan.net/posts/json-encode-data-type-errors-in-php 希望对你有帮助

【讨论】:

    【解决方案2】:

    这很可能是由于 PHP 使用了错误的数据库驱动程序。从 PHP 5.3 开始,mysqlnd 是默认的数据库驱动程序,支持返回本机数据类型。

    确保您使用 MySQL 的 mysqlnd 驱动程序。

    另见How to get numeric types from MySQL using PDO?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 1970-01-01
      • 2018-12-18
      • 1970-01-01
      相关资源
      最近更新 更多