0

我正在尝试使用 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

4

3 回答 3

2

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

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

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

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

于 2013-01-18T23:25:30.993 回答
0

有关如何阅读它的示例,请参见此 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]->total_count因为它是一个包含对象的数组,而不是包含数组的数组。

于 2013-01-18T23:22:17.867 回答
0
$json = "[{\"total_count\":17}]";

$arr = Jason_decode($json);
foreach ($arr as $obj) {
    echo $obj->total_count . "<br>";
}

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

于 2013-01-18T23:27:37.453 回答