我正在为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"
}
}
答案 0 :(得分:1)
$decode
不是数组,而是对象,因此最好将其解码为数组,然后按以下方式访问键:
$id = $_GET['id'];
$decode = json_decode($json, true);
$echome = $decode[$id];
请注意,true
是json_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