1

我有来自 google api 的这个 json var:

$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:家族 - 变体 - 子集

例如第二项:

  • 字体系列:Josefin Sans | 变体:100、100italic、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 回答