0

私はjson配列を持っていますが、forループを使用してjsonを最後の要素までパスしたいのですが、json配列の配列要素の数を取得したいので、配列に3つ以上のオブジェクトがあります。最後の要素までjsonを解析する方法を混乱させました。私はあなたにアイデアを言うことができます

Count($json);
 echo count;
  for(i=0;i<l=count($json);i++)
 {
 then print the value of each key
 }

サーバーの応答であるため、取得しているjsonに固定長がないため、スタックしていますjsonには、3つのキーを持つ複数のjsonが含まれています。たとえば、国は複数の州を持つことができ、1つの州は複数の地区を持つことができます。助けてください、私は過去2日間質問に行き詰まっていますありがとう

4

2 に答える 2

1

アイデア :

function printJson($json) {
       foreach($json as $index=>$value) {
           if(is_array($value)) {
               printJson($value);
           } else {
               echo 'Value :'.$value.'<br />';
           }
       }

}
$stringJson = "{'location':[{...}]}"; //for example
printJson(json_decode($stringJson));
于 2013-04-05T09:32:20.473 に答える
0

または、json ストリングをデコードしjson_decode()て ua php 変数を与えることもできます。この変数は、php を使用して簡単に反復処理できます。

例えば。

$string = '{"image":"fox.png","puzzlepieces":{"f":{"puzzlepiece":"one","position":"top:121px;left:389px;"},"x":{"puzzlepiece":"three","position":"top:164px;left:455px;"},"o":{"puzzlepiece":"two","position":"top:52px;left:435px;"}}}';

var_dump(json_decode($string));

として出力されます

object(stdClass)[1]
  public 'image' => string 'fox.png' (length=7)
  public 'puzzlepieces' => 
    object(stdClass)[2]
      public 'f' => 
        object(stdClass)[3]
          public 'puzzlepiece' => string 'one' (length=3)
          public 'position' => string 'top:121px;left:389px;' (length=21)
      public 'x' => 
        object(stdClass)[4]
          public 'puzzlepiece' => string 'three' (length=5)
          public 'position' => string 'top:164px;left:455px;' (length=21)
      public 'o' => 
        object(stdClass)[5]
          public 'puzzlepiece' => string 'two' (length=3)
          public 'position' => string 'top:52px;left:435px;' (length=20)

私のxdebug拡張機能はWAMPでオンになっているため、var_dumpの形式が少し異なる場合がありますが、全体として、配列からphp変数を取得し、それを使用して反復しforeachたり、他のループを使用したりできます。

json_decode の詳細については、こちらをご覧ください

于 2013-04-05T09:44:09.637 に答える