【问题标题】:Turn a number (string) in JSON object to int将 JSON 对象中的数字(字符串)转换为 int
【发布时间】:2012-11-14 16:36:14
【问题描述】:

这是PHP中的一行json_encode函数

echo $_GET['callback'].'('.json_encode($jsona).')'; 

返回

jQuery183022578700515441597_1353992348618([{"label":["done","open","pending","draft","cancel"],"values":[{"label":"August","values":["175","32","1","0","0"]},{"label":"September","values":["450","130","1","0","1"]},{"label":"October","values":["150","396","1","5","0"]},{"label":"November","values":["0","0","0","3","0"]}]}])

我通过 JS (jQuery) 得到它们

    $.ajax({
                url: 'ajax/_state.php',
                type: 'GET',
                dataType: 'jsonp',
                dataCharset: 'jsonp',
                success: function (data) {
console.log(data);
    }
});

但是返回的 JSON 中包含的所有数字都变成了字符串(不知道为什么?)。

例如,我如何将它们转换为整数;

{
      'label': ['done', 'open', 'pending', 'draft', 'cancel'],
      'values': [
      {
        'label': 'Sept',
        'values': [20, 40, 15, 5,2]
      }, 
      {
        'label': 'Oct',
        'values': [30, 10, 45, 10]
      }, 
      {
        'label': 'Nov',
        'values': [38, 20, 35, 17]
      }
      ]
      }

【问题讨论】:

  • 如果它们被打印为字符串,那么它们在 PHP 中一开始就是字符串。 $jsona 来自哪里?
  • 正如 loganfsmyth 所说。所以事情需要在 PHP 而不是 javascript 中修复。

标签: php javascript jquery json jsonp


【解决方案1】:

$jsona 中的值必须是字符串。如果您使用的是 PHP 5.3,则可以使用 JSON_NUMERIC_CHECK 作为第二个参数,它会在适当的时候将字符串转换为整数,但请注意该选项。

【讨论】:

  • 这个答案很好,使用这个常量修复 JSON 数组中的每个数字字符串。
猜你喜欢
  • 2019-08-27
  • 2020-05-27
  • 1970-01-01
  • 1970-01-01
  • 2011-04-23
  • 2012-06-14
  • 2012-02-20
  • 2015-01-03
相关资源
最近更新 更多