2016-05-13 5 views
0

私は本当にこの1つの助けが必要です。phpを使ってjsonスキーマのすべての要素を取得する

私は、次のJSONスキーマを持っている:

{ 
    "url": "http://www.google.com", 
    "bodySchema": { 
     "type": "object", 
     "properties": { 
      "SKU": { 
       "sync": "True", 
       "mapTo": "SKU", 
       "type": "string" 
      }, 
      "WareHouseId": { 
       "sync": "False", 
       "mapTo": "", 
       "type": "integer" 
      }, 
      "Stock": { 
       "sync": "True", 
       "mapTo": "Stock", 
       "type": "integer" 
      } 
     }, 
     "required": { 
      "0": "SKU", 
      "1": "Stock" 
     } 
    } 
} 

私は

(すべての要素を取得する)最初の部分では、すべての要素を取得し、それらが必要とされているかどうかを確認したいかどうか、

foreach ($this->methods as $data) { 
    if(!empty($data['bodySchema']->properties)){ 
    } 
} 

しかし、私の問題は、私は何のWAを持っていないということです:

私がやっていることですSKU、WarehouseIDまたはStockを取得するには、キーや種類のものではないためです。

私の2番目の問題は、必要なものをすべて文字列として入力してループを実行することでしたが、それ以外の方法があればわかります。

+0

これを参照してください:http://stackoverflow.com/questions/36759525/parsing-a-complex-json-data-returned-by-api-in-javascript-edited-it-worked-wit/36765367?noredirect = 1#comment61190261_36765367 – GBnewbie

+0

ありがとう@GBnewbieしかし、私はその部分をすでに解決して作業していましたが、キーを取得する問題がありました – Saikios

答えて

1

あなたが単純なループでの特性を得ることができます:あなたは、上からの結果に必要なフィールドを追加したい場合は、あなたがそうのようにそれを行うことができます

foreach ($data->bodySchema->properties as $key => $value) { 
    // .. 
} 

foreach ($data->bodySchema->required as $required) { 
    $data->bodySchema->properties->$required->required = true; 
} 

Example with objectsまたはwith arraysです。

+0

小さな変更で最初の部分がうまくいきました:foreach($ data ['bodySchema'] - > properties as { 必要なプロパティを太字にしたい – Saikios

+0

この場合、2番目の例を使用した場合、プロパティを再度見て、 'if($ property-> $ value) {//これを太字にする} ' –

+0

最初の例で$ propertyとは何ですか? – Saikios

関連する問題