用PHP的完整json的Echo编码段

时间:2019-03-28 14:13:18

标签: php json echo

我正在为json文件设置一个简单的PHP处理程序。

这是我的设置,我不确定我需要在PHP脚本中定义什么才能从json的长列表中获取此ID。

任何建议或帮助将不胜感激。

<?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 个答案:

答案 0 :(得分:1)

$decode不是数组,而是对象,因此最好将其解码为数组,然后按以下方式访问键:

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

$echome = $decode[$id];

请注意,truejson_decode()接受的第二个参数。您可以详细了解here

答案 1 :(得分:0)

如果要以数组形式访问它,请通过将true传递到json_decode来作为关联数组进行解码,然后:

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

或者,如果要将其保留为对象,则可以执行以下操作来访问属性:

$echome = $decode->{$id};           //looking for "id" within the json