Google font api / json /php /json_decode

痴心易碎 提交于 2019-12-08 07:04:05

问题


I have this json var from 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"
   ]
  },
....
 ]
}';

How can i decode $json with php in order to display informations like this :

  • Font 1 : family - variant - subsets
  • Font 2 : family - variant - subsets

Ex for the second item :

  • Font family : Josefin Sans | variants : 100, 100italic,300...|subsets : latin

Thank you


回答1:


$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 />';
}

This does exactly what you want.




回答2:


I think that the most comfortable way is to create a data structure in your PHP code, and you will decode this JSON to a list of items from this type. Then, it will be very easy to iterate this list and get the data that you want.

The data structure that I'm talking about is something that will contain

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

hope this helps...



来源:https://stackoverflow.com/questions/8463760/google-font-api-json-php-json-decode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!