2009-09-01 2 views
0

У меня возникла проблема с обозначениями, используемыми в файле JSON. Я пытаюсь разобрать. Некоторые узлы имеют. (периоды) в названиях, которые избегают объектно-обозначений ($json = $article->rssFeed.url;)PHP json_decode notation issue

Как бы я мог выбрать узлы. Нужно ли мне str_replace. (Периоды), или есть некоторые другие обозначения, которые я могу использовать? Вот отрывок из JSON:

"docs": [{"rssFeed.type": "news", "rssFeed.url": "http://www.example.com/", "score": 1.0 }] 

ответ

3

Вы можете использовать скобки вокруг имени для доступа к свойству:

<?php 

$o = json_decode('{"docs": [{"rssFeed.type": "news", "rssFeed.url": "http://www.example.com/", "score": 1.0 }]}'); 

var_dump($o->docs[0]->{'rssFeed.url'}); 
?> 
1

@eWolf: вы по-прежнему прямо, PHP почти как JavaScript, как его C как природа.

$object = json_decode('{"docs": [{"rssFeed.type": "news", 
            "rssFeed.url": "http://www.example.com/", 
            "score": 1.0 }]}', TRUE); 

Примечание: 2-й аргумент json_decode(), TRUE. Это заставляет функцию возвращать ассоциативный массив.

В настоящее время $object['rssFeed.type'] может использоваться.