繁体   English   中英

如何在php中操作JSON?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM