过滤PHP中的JSON响应



我有一个API,需要验证输入,如果输入有效,则打印JSON响应的一些对象。我有的是:

<?php
$headers = [
"User-Agent: Test API",
"token: *my-token*"
];

$accountid = $_POST['accountid'];
$url = "https://my+api+url/$accountid";           

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

$data = json_decode($result, true);
if (preg_match('/404/',$result)){
echo "AccountID invalid.";
}
else {
echo "AccountID valid:n";
} 
?>

返回是正确的,我正在接收我的api响应。我的api返回如下:

{
"status": "ACTIVE",
"id": "DEFAULT",
"add": [{
"key": "state",
"value": "New York"
}, {
"key": "city",
"value": "New York"
}],
"created": "2023-01-16",
"modified": "2023-01-16",
"_id": "50000000"
}

我正在尝试过滤这个JSON响应,例如,如果它是有效的,我希望它只显示"状态"one_answers"已修改"。和_" id"从我的JSON。我是PHP的新手,还在学习。有人能帮帮我吗?

我试着在我的else中使用foreach,像这样:

$data = json_decode($result, true);
if (preg_match('/404/',$result)){
echo "AccountID invalid.";
}
else {
echo "AccountID valid:n";
foreach ($data as $values){
echo $values["status"],
echo $values["modified"],
echo $values["_id"];
} 
Uncaught TypeError: Cannot access offset of type string on string.

先检查状态是否为ACTIVE,然后再访问json数据

<?php 
if( $result === false){
echo "Error Request";
}else{
$data = json_decode($result);
if($data->status == "ACTIVE"){
echo $data->_id;
echo $data-> modified
}else{
echo "Invalid Data";
}
}

最新更新