我目前有一些代碼從站點獲取一些JSON。這基本上是我目前所做的我應該如何處理可能具有對象或數組值的鍵?
$valueObject = array();
if (isset($decoded_json->NewDataSet)) {
foreach ($decoded_json->NewDataSet->Deeper as $state) {
$i = count($valueObject);
$valueObject[$i] = new ValueObject();
$valueObject[$i]->a = $state->a;
}
現在只有一個「更深」的問題發生。服務器將其作爲JSON對象返回。 $ state然後成爲Deeper對象中的每個鍵。例如$ state-> a將不存在,直到位置7附近。有什麼方法可以將深度從JSON對象轉換爲數組,當深度數爲1時?
希望這有助於說明我的問題:
"NewDataSet": {
"Deeper": [
{
"a": "112",
"b": "1841"
},
{
"a": "111",
"b": "1141"
}
]
}
}
與
"NewDataSet": {
"Deeper":
{
"a": "51",
"b": "12"
}
}
上述轉換爲
"NewDataSet": {
"Deeper": [
{
"a": "51",
"b": "12"
}
]
}
將是巨大的。我不知道如何做到這一點
也許我想在這裏很簡單,但爲什麼不做一個轉換爲數組?否則,只需檢查它的對象或數組 – Hannes 2011-05-24 16:02:53
@Hannes:當count()返回一個我想將其轉換爲數組。這就是我正在尋找的,我不知道該怎麼做。 count($ json-> NewDataSet-> Deeper)== 1表示對象。問題是當我填充30個字段值對象時,我不想複製該對象。 – flumpb 2011-05-24 16:06:19