Эхо кодированный сегмент json с PHP - PullRequest
0 голосов
/ 28 марта 2019

Я устанавливаю простой обработчик PHP для моих файлов json.

Вот мои настройки, я не уверен точно, что мне нужно определить в моем PHP-скрипте, чтобы получить этот идентификатор из длинного списка в json.

Любое предложение или помощь будут оценены.

<?php
$id = $_GET['id'];              //get ?id=
$jsonurl = "api/documents.json";     //json path
$json = file_get_contents($jsonurl);   //getting file
$decode = json_decode($json);          //decoding the json

$echome = $decode[0]->$id;           //looking for "id" within the json

$reencode = json_encode($echome)     //re-encoding this segmented json

echo($reencode);        //echo the json

Желаемый результат будет

//load page with id set as 21
{
    "21": {
        "name": "mike",
        "active": "yes"
    }
}

url = www.example.com/process.php?id=21

// simple example of the json
{
    "20": {
        "name": "john",
        "active": "no"
    },
    "21": {
        "name": "mike",
        "active": "yes"
    }
}

Ответы [ 2 ]

1 голос
/ 28 марта 2019

$decode это не массив, это объект, поэтому вам лучше будет декодировать его в массив, а затем получить доступ к ключам следующим образом:

$id     = $_GET['id'];           
$decode = json_decode($json, true);

$echome = $decode[$id];

Обратите внимание, что true - это второй параметр, принятый json_decode(). Подробнее об этом можно прочитать здесь .

0 голосов
/ 28 марта 2019

Если вы хотите получить доступ к нему как к массиву, расшифруйте его как ассоциативный массив, передав true в json_decode, затем:

$echome = $decode[$id];           //looking for "id" within the json

или, если вы хотите оставить его как объект, вы можете получить доступ к свойствам, выполнив следующие действия:

$echome = $decode->{$id};           //looking for "id" within the json
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...