Проблема с нотацией PHP json_decode - PullRequest
0 голосов
/ 01 сентября 2009

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

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

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

Ответы [ 2 ]

3 голосов
/ 01 сентября 2009

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

<?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 голос
/ 12 апреля 2011

@ 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'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...