Это ответ json, который я получаю. Пожалуйста, помогите разобрать json. Я использовал json_decode, но не знаю, как обращаться с объектом без имени.
{
"child": {
"": {
"rss": [{
"data": "\n \n",
"attribs": {
"": {
"version": "2.0"
}
},
"xml_base": "",
"xml_base_explicit": false,
"xml_lang": "",
"child": {
"": {
"channel": [{
"data": "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ",
"attribs": [],
"xml_base": "",
"xml_base_explicit": false,
"xml_lang": "",
"child": {
"": {
"title": [{
"data": "Data name",
"attribs": [],
"xml_base": "",
"xml_base_explicit": false,
"xml_lang": ""
}]
}
}
}]
}
}
}]
}
}
}
Я пытаюсь получить значение данных внутри заголовка, но я не знаю, как решить объект без имени. Может ли кто-нибудь помочь.
{
"child": {
"": {}}}
Были и другие внешние циклы. Я дошел сюда с помощью цикла for, но не знаю, как двигаться дальше. @Дэйвид
Откуда ты взял этот json? Было бы легче это исправить.
Дайте угадаю - это какой-то XML для вывода массива. Если вы придерживаетесь XML, для этого есть всевозможные ресурсы - stackoverflow.com/questions/18906366/…, stackoverflow.com/questions/250679/….






Может быть, это поможет;
<?php
$json='{
"child": {
"": {
"rss": [{
"data": "\n \n",
"attribs": {
"": {
"version": "2.0"
}
},
"xml_base": "",
"xml_base_explicit": false,
"xml_lang": "",
"child": {
"": {
"channel": [{
"data": "\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ",
"attribs": [],
"xml_base": "",
"xml_base_explicit": false,
"xml_lang": "",
"child": {
"": {
"title": [{
"data": "Data name",
"attribs": [],
"xml_base": "",
"xml_base_explicit": false,
"xml_lang": ""
}]
}
}
}]
}
}
}]
}
}
}';
$json_decoded=json_decode($json,true);
print_r($json_decoded['child']['']);
?>
Есть два способа получить доступ к объекту title, в зависимости от того, декодируете ли вы JSON как объект или как массив. Если вы декодируете как объект, вам нужно использовать нотацию ->{'element'}, чтобы обойти пустые имена (Примечание, этот Только работает в PHP 7.2 и выше):
$json = json_decode($jsonstr);
print_r($json->child->{''}->rss[0]->child->{''}->channel[0]->child->{''}->title);
Вывод:
Array (
[0] => stdClass Object (
[data] => Data name
[attribs] => Array ( )
[xml_base] =>
[xml_base_explicit] =>
[xml_lang] =>
)
)
В качестве массива вам просто нужно использовать пустой индекс (''):
$json = json_decode($jsonstr, true);
print_r($json['child']['']['rss'][0]['child']['']['channel'][0]['child']['']['title']);
Вывод:
Array (
[0] => Array (
[data] => Data name
[attribs] => Array ( )
[xml_base] =>
[xml_base_explicit] =>
[xml_lang] =>
)
)
вы пробовали код раньше? если да, опубликуйте здесь.