这是json(用jsonlint.com验证)想要转换为数组:
{
"header":{
"gtfs_realtime_version":"1.0",
"incrementality":"FULL_DATASET",
"timestamp":"1425644644"
},
"entity":{
"id":"54a2d01be4b035374130324a",
"alert":{
"active_period":{
"start":"1418511600",
"end":"1450047540"
},
"informed_entity":{
"agency_id":"BRER",
"route_id":"BRER-623-3"
},
"cause":"OTHER_CAUSE",
"effect":"OTHER_EFFECT",
"header_text":{
"translation":{
"text":"Nachtzuschlag",
"language":"de"
}
},
"description_text":{
"translation":{
"text":"Zuschlagpflichtiges Nachtnetz ab 01h00. Bitte Nachtzuschlag am Automaten, beim Fahrpersonal oder per SMS (NZ an 988 zu CHF 5.-/SMS) lösen.",
"language":"de"
}
}
}
},
"entity":{
"id":"54e31129e4b025511c91cc41",
"alert":{
"active_period":{
"start":"1424646000",
"end":"1425657600"
},
"informed_entity":{
"agency_id":"PAG",
"route_id":"PAG65-2004-3"
},
"cause":"OTHER_CAUSE",
"effect":"OTHER_EFFECT",
"header_text":{
"translation":{
"text":"Umleitung Linie 825",
"language":"de"
}
},
"description_text":{
"translation":{
"text":"Aufgrund Holzschlags wird die Linie 825 ab Herdern bis Eschenz über Mammern umgeleitet. Dauer der Umleitung ist von 02.03.2015 bis 06.03.2015 um 16:30Uhr.",
"language":"de"
}
}
}
},
"entity":{
"id":"533ac08ae4b06c7674efd2b2",
"alert":{
"active_period":{
"start":"1396382400",
"end":"1449885600"
},
"informed_entity":{
"agency_id":"VBSG",
"route_id":"VBSG117"
},
"informed_entity":{
"agency_id":"VBSG",
"route_id":"VBSG116"
},
"cause":"OTHER_CAUSE",
"effect":"OTHER_EFFECT",
"header_text":{
"translation":{
"text":"Nachtzuschlag",
"language":"de"
}
},
"description_text":{
"translation":{
"text":"Bitte für alle Verkehrsmittel, welche fahrplanmässig nach 01.00 Uhr verkehren, einen Nachtzuschlag von fünf Franken lösen.",
"language":"de"
}
}
}
},
"entity":{
"id":"54ec7ea0e4b035374130379d",
"alert":{
"active_period":{
"start":"1425355200",
"end":"1430503200"
},
"informed_entity":{
"agency_id":"RTB",
"route_id":"RTB-412-3"
},
"cause":"OTHER_CAUSE",
"effect":"OTHER_EFFECT",
"header_text":{
"translation":{
"text":"Umleitung Linie 412",
"language":"de"
}
},
"description_text":{
"translation":{
"text":"Aufgrund Bauarbeiten wird Linie 412 umgeleitet. Die Haltestelle Grabserberg, Rogghalm wird während der Bauphase nicht bedient.",
"language":"de"
}
}
}
}
}
使用json_decode(...,true)解析时,我得到的全部是:
Array
(
[header] => Array
(
[gtfs_realtime_version] => 1.0
[incrementality] => FULL_DATASET
[timestamp] => 1425644644
)
[entity] => Array
(
[id] => 54ec7ea0e4b035374130379d
[alert] => Array
(
[active_period] => Array
(
[start] => 1425355200
[end] => 1430503200
)
[informed_entity] => Array
(
[agency_id] => RTB
[route_id] => RTB-412-3
)
[cause] => OTHER_CAUSE
[effect] => OTHER_EFFECT
[header_text] => Array
(
[translation] => Array
(
[text] => Umleitung Linie 412
[language] => de
)
)
[description_text] => Array
(
[translation] => Array
(
[text] => Aufgrund Bauarbeiten wird Linie 412 umgeleitet. Die Haltestelle Grabserberg, Rogghalm wird während der Bauphase nicht bedient.
[language] => de
)
)
)
)
)
如何阻止json_decode
废弃大部分数据?
答案 0 :(得分:1)
您无法实现此目的,因为在JSON对象中,密钥名称不应重复。
您有events
次密钥重复多次。在PHP方面它很好,但在JSON中它是无效的。
查看http://wiki.solarium-project.org/index.php/V2:BufferedAdd_plugin