Чтение JSON с переполнением стека

{"items":[
{
"name":"xyz",
"traits":["a","b","c","d"],
"specialities":["a","b","c","d"]
},
{
"name":"abc",
"traits":["a","b","c","d"],
"specialities":["a","b","c","d"]
}
]}

Как я читаю traits а также specialitiesitems->traits а также items->traits[0] не похоже на работу!
Проведите меня через это, пожалуйста


$data=json_decode($json);
foreach($data->items as $playerdata)
{
/*
I tried
$traits=$playerdata->traits;
and
$traits=$playerdata->traits[0];
and
$traits=$playerdata[0]->traits (althought i dont know why)
*/
}

Я хочу хранить все значения внутри traits а также specialities внутри $traits а также $specialities соответственно

П.С .: Пожалуйста, не обращайте внимания на синтаксические ошибки. Надеюсь, вы получите общее представление.

-1

Решение

вам нужно использовать функцию json_decode (),

$my_object = json_decode($json_string);

тогда вы должны иметь возможность получить к нему доступ, как вы обычно делаете с объектами

это пример того, как вы должны это сделать

<?php

$json = '{"items":[ { "name":"xyz", "traits":["a","b","c","d"],    "specialities":["a","b","c","d"] }, { "name":"abc", "traits":["a","b","c","d"],    "specialities":["a","b","c","d"] } ]}';

$my_object = json_decode($json);

var_export($my_object->items[0]->name);

и вот как вы можете получить доступ к чертам и специальностям

$traits = [];
$specialities = [];

echo "the traits are:\n";
foreach($my_object->items as $item)
{
var_dump($item->traits);
$traits[] = $item->traits;
echo "\n";
}

echo "\n\n";
echo "the specialities are:\n";
foreach($my_object->items as $item)
{
var_dump($item->specialities);
$specialities[] = $item->specialities;
echo "\n";
}

от var_dump ты это видишь traits а также specialities оба являются массивами, тогда вы можете просто обращаться к ним как к массиву или написать функцию, которая принимает массив и возвращает то, что вы ищете.

2

Другие решения

Использовать json_decode Функция из PHP и декодировать строку. Тогда у вас есть массив, и вы можете получить к нему доступ.

http://php.net/manual/en/function.json-decode.php

0

<?php

$d = '{"items":[
{
"name":"xyz",
"traits":["a","b","c","d"],
"specialities":["a","b","c","d"]
},
{
"name":"abc",
"traits":["a","b","c","d"],
"specialities":["a","b","c","d"]
}
]}';

$h = json_decode($d);

foreach($h->items as $i){
$traits[] = $i->traits;
$specialities[] = $i->specialities;
}

echo "<pre>";
print_r($specialities);
echo "<pre>";

?>
0
По вопросам рекламы [email protected]