[英]How to manipulate JSON in php?
假设我有一个如下所示的JSON对象:
{"tag":[{"Item1":"Required"},{"Item2":"Not Required"},{"Item3":"Maybe Required"}]}
我将其从凌空发布到接收这样的JSON对象的服务器:
$json = file_get_contents('php://input');
说我想检查是否收到了item2? 我怎么做?
我尝试了这个:
<?php
$json = file_get_contents('php://input');// Assuming $json looks like: {"tag":[{"Item1":"Required"},{"Item2":"Not Required"},{"Item3":"Maybe Required"}]}
$temp=$json["tag"];// assuming $temp would look like: [{"Item1":"Required"},{"Item2":"Not Required"},{"Item3":"Maybe Required"}]
$temp1=$temp[1]["Item2"];//assuming $temp1 looks like: "Not Required"
$data=array();
$temp2=array('Status'=>$temp1);// assuming $temp2 looks like ["Status"=>"Not Required"]
array_push($data,$temp2);
$response=array('phpStatus'=>$data);// assuming $response looks like: ["phpStatus"=>["Status"=>"Not Required"]]
echo json_encode($response);// Assuming encoded version should look like: {"phpStatus":[{"Status":"Not Required"}]}
?>
注意:假设编码的json正是我想要在android中接收的!
{"phpStatus":[{"Status":"Not Required"}]}
当使用file_get_contents提取JSON时,它只是一个字符串,因此您需要JSON_decode JSON字符串才能访问值。
解码字符串时,JSON数据现在是一个数组,如下所示:
Array
(
[tag] => Array
(
[0] => Array
(
[Item1] => Required
)
[1] => Array
(
[Item2] => Not Required
)
[2] => Array
(
[Item3] => Maybe Required
)
)
)
这是一个简短的工作片段:
$json_in = '{"tag":[{"Item1":"Required"},{"Item2":"Not Required"},{"Item3":"Maybe Required"}]}';
// Decodes JSON into an associative array.
$JSON = json_decode($json_in, true);
// Displays data neatly for you to see the structure of the array.
echo "<pre>";
print_r($JSON);
// Retreive Item2
$item2 = $JSON['tag'][1]['Item2'];
if ($item2 === "Required")
{
echo "is received";
} else
{
echo 'is not received';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.