У меня проблема с нотацией, используемой в файле JSON, который я пытаюсь разобрать. Некоторые узлы имеют. (периоды) в именах, которые избегают объектной нотации ($json = $article->rssFeed.url;)
Как бы я хотел выбрать узлы. Нужно ли мне str_replace. (Периоды), или есть некоторые другие обозначения, которые я могу использовать? Вот фрагмент JSON:
"docs": [{"rssFeed.type": "news", "rssFeed.url": "http://www.example.com/", "score": 1.0 }]
Вы можете использовать фигурные скобки вокруг имени для доступа к свойству:
<?php $o = json_decode('{"docs": [{"rssFeed.type": "news", "rssFeed.url": "http://www.example.com/", "score": 1.0 }]}'); var_dump($o->docs[0]->{'rssFeed.url'}); ?>
@eWolf: вы все еще правы, php почти похож на javascript как на C как на природу.
$object = json_decode('{"docs": [{"rssFeed.type": "news", "rssFeed.url": "http://www.example.com/", "score": 1.0 }]}', TRUE);
Примечание: второй аргумент json_decode()
, TRUE
. Это заставляет функцию возвращать ассоциативный массив.
Теперь можно использовать $object['rssFeed.type']
.