Как получить строку массива json из объекта json? - PullRequest
0 голосов
/ 27 февраля 2019

Я новичок в PHP, и у меня есть довольно простой вопрос, на который я не смог найти ответ.Это пример JSONObject:

{
    "biome":"forest",
    "id":"51134535488",
    "animals":[
        {"species":"bear", "age":"8", "gender":"male", "family":"mamal"},
        {"species":"hawk", "age":"3", "gender":"female", "family":"bird"},
        {"species":"elk", "age":"5", "gender":"male", "family":"mamal"},
        {"species":"spider", "age":"0.3", "gender":"female", "family":"insect"}
    ]
}

В нем у нас есть JSONArray, который содержит четыре объекта JSONObject.Как мне получить только JSONArray из JSONObject, а затем выполнить цикл foreach для получения всех внутренних строк?Я работаю в Lumen Framework, поэтому конкретный ответ Lumen будет высоко оценен (если это можно сделать по-другому в Lumen)!

Ответы [ 3 ]

0 голосов
/ 27 февраля 2019

если вы начинаете со строки JSON, то есть ваш пример - строковая переменная в PHP, вы можете сделать что-то вроде этого:

$jsonString = '{"biome" : "forest", ...}';
$forest = json_decode($jsonString, true); // Passing true as a second argument converts the JSON string into an array, instead of a PHP object

$animals = $forest['animals']; // If you're sure animals is always an array, you can do the following for loop without any problems
foreach ($animals as $animal) {
    var_dump($animal);
}
0 голосов
/ 28 февраля 2019

Вот несколько полезных строк, которые вы можете использовать:

/* Set the json file directory */
$path = 'your path here';
/* here your json file name */
$jsonfile = 'youjsonfilename';
/* json decode */
$language = json_decode(file_get_contents($path . $jsonfile. '.json'));

Тогда, если ваш файл json выглядит следующим образом:

{
    "test": {
        "test1"                 : "test2",
     }
}

Вы должны написать в php эту строку, чтобы напечатать "test2"например:

<?php echo $language->test->test1; ?>
0 голосов
/ 27 февраля 2019

Если, например, вы хотите отобразить четыре вида:

$json = '{
    "biome":"forest",
    "id":"51134535488",
    "animals":[
        {"species":"bear", "age":"8", "gender":"male", "family":"mamal"},
        {"species":"hawk", "age":"3", "gender":"female", "family":"bird"},
        {"species":"elk", "age":"5", "gender":"male", "family":"mamal"},
        {"species":"spider", "age":"0.3", "gender":"female", "family":"insect"}
    ]
}';

foreach(json_decode($json)->animals as $animal) {
    echo $animal->species . "\n";
}
...