2017-04-22 8 views
0

これは、EmojiOneプロジェクトが提供するJSONデータの抜粋です。彼らはバージョン3.0をリリースしましたが、JSON形式は少し変更されていて、JSONからデータを抽出する以前のPHPコードはもう機能しなくなりました。JSON変数の2つのレベルへのアクセス

single.json

{ 
    "1f469-2764-1f468": { 
    "name": "couple with heart: woman, man", 
    "category": "people", 
    "order": 2426, 
    "display": 0, 
    "shortname": ":couple_with_heart_woman_man:", 
    "code_points": { 
     "base": "1f469-2764-1f468", 
     "output": "1f469-200d-2764-fe0f-200d-1f468", 
     "default_matches": [ 
     "1f469-200d-2764-fe0f-200d-1f468", 
     "1f469-2764-fe0f-1f468" 
     ], 
     "greedy_matches": [ 
     "1f469-200d-2764-fe0f-200d-1f468", 
     "1f469-2764-fe0f-1f468" 
     ], 
     "decimal": "" 
    }, 
    "keywords": [ 
     "couple", 
     "love", 
     "man", 
     "woman" 
    ] 
    } 
} 

そして、これは私が試してみて、JSONからデータを抽出するために使用しているいくつかのPHPです:

<?php 
$str = file_get_contents('single.json'); 
$json_a = json_decode($str, true); 

foreach($json_a as $key => $val) { 

    $name = $val['name']; 
    $shortname = $val['shortname']; 
    $category = $val['category']; 
    $emoji_order = $val['order']; 
    $keywords = implode(',', $val['keywords']); 

} 
?> 

にはどうすればbaseの値からアクセスすることができますデータの一部はcode_pointsですか?あなたはこのようにそれをアクセスすることによってbaseにアクセスできるように

答えて

0

$valは、multidimensional array次のようになります。

$val['code_points']['base']; 

Hereアクションでそれの一例であり、簡単なプログラムのための:

<?php 
$str = <<<EOT 
{ 
    "1f469-2764-1f468": { 
    "name": "couple with heart: woman, man", 
    "category": "people", 
    "order": 2426, 
    "display": 0, 
    "shortname": ":couple_with_heart_woman_man:", 
    "code_points": { 
     "base": "1f469-2764-1f468", 
     "output": "1f469-200d-2764-fe0f-200d-1f468", 
     "default_matches": [ 
     "1f469-200d-2764-fe0f-200d-1f468", 
     "1f469-2764-fe0f-1f468" 
     ], 
     "greedy_matches": [ 
     "1f469-200d-2764-fe0f-200d-1f468", 
     "1f469-2764-fe0f-1f468" 
     ], 
     "decimal": "" 
    }, 
    "keywords": [ 
     "couple", 
     "love", 
     "man", 
     "woman" 
    ] 
    } 
} 
EOT; 

$json_a = json_decode($str, true); 

foreach($json_a as $key => $val) { 

    $name = $val['name']; 
    $shortname = $val['shortname']; 
    $category = $val['category']; 
    $emoji_order = $val['order']; 
    $keywords = implode(',', $val['keywords']); 
    $base = $val['code_points']['base']; 

    echo 'Name: ', $name, "\n"; 
    echo 'Base: ', $base; 

} 
?> 
+0

感謝あなたの助け - それはそれをソートしました! – 4532066

関連する問題