プロが教える店舗&オフィスのセキュリティ対策術

普段Webのデザイン・コーダーを担当しておりますが、
PHPのフォームを修正することになりました。
その中でJSONから値を参照しなければならないのですが、
JSONにリスト名?があるせいか、うまく取得できません。

$test =
'Store:[
{
"store_name":"ストア1",
"store_id":"10"
}]';

var_dump(json_decode($test, true));

上の「Store」がなければ配列の中身を参照できるのですが・・・。
そもそもJSONのフォーマットが間違えているのでしょうか。
他のページでこのJSONを使用しているので、なるべく変更したくないのが現状です。

かなり初歩的な質問で申し訳無いのですが、ググってもこの形式(Storeがあるような)ではひっかからなかったため、質問させていただきました。
何卒、宜しくお願いします。

A 回答 (2件)

>そもそもJSONのフォーマットが間違えているのでしょうか。



そうですね。

Store:[{"store_name":"ストア1","store_id":"10"}]

は、JSON形式ではありません。Store: を取り除いてください。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。
初心者の稚拙な質問にご対応いただき恐縮です。

ちなみに、他のサイト
http://www.ibm.com/developerworks/jp/web/library …
で下記のようなJSONの書き方もあるようですが、この場合、
peopleの中にある配列を参照するのは無理、ということなのでしょうか。

{ "people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
{ "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
]}

度々申し訳ありませんが、よろしければご回答いただければ幸いです。

お礼日時:2012/08/07 22:53

Store:・・・は文法的におかしいですが、


オブジェクトの要素として認識させればよいのでは
例に近い処理であれば

<?PHP
$test =
'{"Store":[
{
"store_name":"ストア1",
"store_id":"10"
}]}';

var_dump(json_decode($test, true));

?>
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

結局1番目の方にご回答いただいたように、余計な部分を削除する形で対応しました。
稚拙な質問にご回答いただき、ありがとうございました。

お礼日時:2012/08/08 14:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!