【问题标题】:How to decode the following code in Json?如何在 Json 中解码以下代码?
【发布时间】:2013-01-19 07:27:37
【问题描述】:

我正在尝试使用 php json_decode 函数解码以下 JSON。

[{"total_count":17}]

我认为输出中的方括号阻止了它。我该如何解决?我无法控制输出,因为它来自 Facebook FQL 查询:

https://api.facebook.com/method/fql.query?format=json&query=SELECT%20total_count%20FROM%20link_stat%20WHERE%20url=%22http://www.apple.com%22

【问题讨论】:

  • 这是一个包含单个对象的数组,具有一个键/值对。
  • 以上字符串对json有效,我不明白为什么你不能解码。您可能需要包含您的解码代码
  • 您的错误/输出是什么?它为我正确解码。
  • 问题是解码还是使用?你有没有记住结果是一个数组?
  • 我忘了结果是一个数组。谢谢

标签: php json


【解决方案1】:

PHP 的 json_decode 默认返回一个 stdClass 的实例。

对你来说,处理数组可能更容易。您可以强制 PHP 返回数组,作为 json_decode 的第二个参数:

$var = json_decode('[{"total_count":17}]', true);

之后,您可以以$result[0]['total_count'] 的身份访问该变量

【讨论】:

  • 谢谢。我忘了结果是一个数组。我错过了那里的真实情况。
【解决方案2】:

有关如何阅读它的示例,请参阅此 JS fiddle:

http://jsfiddle.net/8V4qP/1

这与 PHP 的代码基本相同,只是您需要将 true 作为第二个参数传递给 json_decode 以告诉 php 您想将其用作关联数组而不是实际对象:

<?php
    $result = json_decode('[{"total_count":17}]', true);
    print $result[0]['total_count'];
?>

如果不传递 true,则必须像这样访问它:$result[0]-&gt;total_count,因为它是包含对象的数组,而不是包含数组的数组。

【讨论】:

    【解决方案3】:
    $json = "[{\"total_count\":17}]";
    
    $arr = Jason_decode($json);
    foreach ($arr as $obj) {
        echo $obj->total_count . "<br>";
    }
    

    如果您想要关联数组而不是对象,请使用 json_decode($json, true)

    【讨论】:

      猜你喜欢
      • 2017-03-19
      • 1970-01-01
      • 2019-03-17
      • 2020-01-03
      • 1970-01-01
      • 1970-01-01
      • 2019-10-06
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多