Microsoft,faceAPIから送られてきたJSONファイルを、PHPの配列・変数等で、
取り出したいのですが、うまくいきません。
有名な方法としてjson_decodeで抽出する方法がありますがjsonファイルの癖のせいで上手くいきません。
###送られてくるjsonファイル
JSON
1 2 3[ 4 { 5 "faceId": "9d9df943-fa3e-42ec-9b4b-7cb76517e1", 6 "faceRectangle": { 7 "top": 113, 8 "left": 136, 9 "width": 97, 10 "height": 97 11 }, 12 "faceAttributes": { 13 "smile": 0, 14 "gender": "male", 15 "age": 23 16 } 17 } 18] 19 20
特に取り出したい内容は、"smile","gender","age"です。
私が思うに自動で付加される[]やら{}が原因であると思います。
抽出するためのPHP
PHP
1<?php 2$url = "./data.json";//faceAPIからもらってくる 3 4$json = file_get_contents($url); 5$json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); 6$mydata = json_decode($json,true); 7 8 9?> 10<html> 11<head> 12<title>json</title> 13</head> 14 15<body> 16 17<?php 18//print_r($mydata); 19//ここで出力できたらなぁ… 20 echo $mydata->faceAttributes->gender; 21 echo $mydata->faceAttributes->age; 22 echo $mydata->faceAttributes->smile; 23?> 24
mydata配列にはjsonファイルが確かに入っていますが、一つの箱にすべてが入っている状態でした。
試したこと
進行形で色々試しています。
json_decodeの引数に敢えて{}を付加することで、decode関数に処理しやすそうなファイルにすることを
試しましたがなかなか上手くいきません。
補足情報(FW/ツールのバージョンなど)
https://syncer.jp/how-to-use-json
このサイト内容を主に試しています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/25 11:11