2016-07-15 11 views
-3

私はPHPを初めて使いました。私は簡単なことを達成する方法を見つけるのに困っています。私はJSONスキーマと一致するキーと値の配列をJSONデータに戻すメソッドを作成しています。ところで、既にそれを行う何かがありますか?戻る私の質問にPhP - これらのオブジェクトの名前を取得する方法

:私はこのスキーマを持っている:ここでは

$demoSchema = ' 
    { 
     "type":"object", 
     "properties":{ 
      "firstName":{"title":"First name", "type":"string", "pattern":"^[a-z]+$"}, 
      "lastName":{"title":"Last name", "type":"string","pattern":"^[a-z]+$"}, 
      "age":{"title":"Age", "description":"Age in years","type":"integer","minimum":1}, 
      "country":{"title":"Country", "type":"string", "enum":["Canada","US"]}, 
      "address":{"title":"Address", "type":"string"}, 
      "postalCode":{"title":"Postal Code", "type":"string"}, 
      "city":{"title":"City", "type":"string"}, 
      "province_ca":{"title":"Province", "type":"string", "enum":["Ontario","Quebec"]}, 
      "province_us":{"title":"State", "type":"string"} 
     }, 
     "required":["firstName","lastName","country"] 
    } 
'; 

は、私は、配列にそれを変換する方法です。今では

$obj_schema = (array)json_decode($demoSchema); 

私の問題は、私は得ることができないということですプロパティオブジェクト内のオブジェクトの名前:firstNamelastNameなど

どうすれば入手できますか?私はこのループを行うと、私は、私も必要なオブジェクト内のプロパティを取得することができます

foreach ($obj_schema["properties"] as $item){ 
    echo($item->title); 
} 

しかし、私はfirstNamelastNameなどの文字列を取得することはできません。どうやってやるの?

+0

もしprint_r($ obj_schema)なら何が得られますか? –

+3

'foreach(... $ key => $ item)' ...?! – deceze

答えて

2
foreach ($obj_schema["properties"] as $property => $item){ 
    echo($item->title); 
    echo 'Property Name:'. $property; 
} 
+0

ちょっと解決しました。ありがとう! –

0

json_decode($demoSchema)によってあなたはstdClassのオブジェクトを取得しているので、あなたは、配列にキャストする必要はありません。

$obj_schema = json_decode($demoSchema); 

をしてから最初の名前フェッチ:だからのみ行うことができ

echo $obj_schema->properties->firstName->title; 

をか、foreachのでそれらのすべてを取得することができます:変換(

foreach ($obj_schema->properties as $item){ 
    echo $item->title; 
} 
1

はこのようにそれを実行します。穴のデータを最初に配列に追加します)。

$obj_schema = json_decode($demoSchema,true);#<--NoteA 
foreach ($obj_schema["properties"] as $property => $item){ 
    echo($property." ".$item['title']); 
} 

NoteA:true与えられた穴のデータを配列に変換する

関連する問題