У меня есть следующий JSON пример ответа (обычно длинный ответ):Как получить доступ к JSON свойства по его индексу
"responseHeader":{
"status":0,
"QTime":2,
"params":{
"indent":"true",
"start":"0",
"q":"hi",
"wt":"json",
"rows":"2"}},
"response":{"numFound":69,"start":0,"docs":[
{
"id":335,
"Page":127,
"dartext":" John Said hi ! ",
"Part":1},
{
"id":17124,
"Page":127,
"Tartext":" Mark said hi ",
"Part":10}]
}}
Я только хочу, чтобы получить доступ к свойству с типом строки проблема имя свойства не является постоянной величиной, так что я не могу использовать что-то вроде:
$obj =json_decode(file_get_contents($data));
$count = $obj->response->numFound;
for($i=0; $i<count($obj->response->docs); $i++){
echo $obj->response->docs[$i]->dartext;
}
, потому что в другом объекте он не dartext это Tartext.
Как я могу получить доступ к третьей собственности по ее индексу, а не к имени?
Очень важно, чтобы вы сначала выяснить, где ключ находится. Даже если он существует (используя приведенные ниже ответы, вы можете понять это) - нет гарантии, что ключи объектов всегда будут в одном порядке ... См. [This] (http://stackoverflow.com/a/5525820/ 3249501) отличный ответ – GrayedFox