Google шрифт api / json / php / json_decode - PullRequest
1 голос
/ 11 декабря 2011

У меня есть этот JSON Var от Google API:

$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"
   ]
  },
....
 ]
}';

Как мне декодировать $ json с помощью php, чтобы отобразить такую ​​информацию:

  • Шрифт 1: семейство - вариант - подмножества
  • Шрифт 2: семейство - вариант - подмножества

Ex для второго предмета:

  • Семейство шрифтов: Josefin Sans | варианты: 100, 100italic, 300 ... | подмножества: латинский

Спасибо

Ответы [ 2 ]

3 голосов
/ 11 декабря 2011
$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 />';
}

Это именно то, что вы хотите.

0 голосов
/ 11 декабря 2011

Я думаю, что наиболее удобный способ - это создать структуру данных в вашем PHP-коде, и вы будете декодировать этот JSON в список элементов этого типа. Тогда будет очень легко выполнить итерацию этого списка и получить нужные данные.

Структура данных, о которой я говорю, будет содержать

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

надеюсь, это поможет ...

...