1

私はGoogle APIからこのjson変数を持っています:

$json='
{
 "kind": "webfonts#webfontList",
 "items": [ 
{
   "kind": "webfonts#webfont",
   "family": "Jockey One",
   "variants": [
    "400"
   ],
   "subsets": [
    "latin",
    "latin-ext"
   ]
  },
  {
   "kind": "webfonts#webfont",
   "family": "Josefin Sans",
   "variants": [
    "100",
    "100italic",
    "300",
    "300italic",
    "400",
    "400italic",
    "600",
    "600italic",
    "700",
    "700italic"
   ],
   "subsets": [
    "latin"
   ]
  },
....
 ]
}';

次のような情報を表示するために、php で $json をデコードするにはどうすればよいですか。

  • フォント 1 : ファミリ - バリアント - サブセット
  • フォント 2 : ファミリ - バリアント - サブセット

2番目のアイテムの例:

  • フォント ファミリー : Josefin Sans | バリアント : 100、100 斜体、300...|サブセット : ラテン語

ありがとうございました

4

2 に答える 2

3
$data = json_decode($json,true);
$items = $data['items'];
$i = 0;
foreach ($items as $item) {
    $i++;
    $str = 'Font '.$i.' '.$item['family'].' Subsets:';
    foreach ($item['variants'] as $variant) {
      $str .= ' '.$variant.' ';
    }
    $str.= ' Variants';
    foreach ($item['subsets'] as $subset) {
      $str .= ' '.$subset;
    }
    echo $str.'<br />';
}

これはまさにあなたが望むことをします。

于 2011-12-11T12:34:45.997 に答える
0

最も快適な方法は、PHP コードでデータ構造を作成することだと思います。この JSON をデコードして、このタイプのアイテムのリストにします。そうすれば、このリストを反復して必要なデータを取得するのは非常に簡単になります。

私が話しているデータ構造は、

String : kind
String : family
List<String> : variants
List<String> : subsets

お役に立てれば...

于 2011-12-11T12:07:44.667 に答える