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 のインスタンスを返します。

あなたにとっては、おそらく配列を扱う方が簡単です。json_decode の 2 番目のパラメーターとして、PHP に配列を返すように強制できます。

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

その後、次のように変数にアクセスできます$result[0]['total_count']

于 2013-01-18T23:25:30.993 に答える
0

読み方の例については、この JS フィドルを参照してください。

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

これは基本的に PHP のコードと同じですが、2 番目の引数として 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 に答える