Php 将所选项目回显为JSON格式
我有一个代码如下。我正在读取一个JSON URL,并用一些if条件回显一些项目。我需要以JSON格式重新回显所选项目Php 将所选项目回显为JSON格式,php,json,Php,Json,我有一个代码如下。我正在读取一个JSON URL,并用一些if条件回显一些项目。我需要以JSON格式重新回显所选项目 <?php $currentDate = date("Y/m/d"); $url = "myURL"; $json = file_get_contents($url); $obj = json_decode($json); foreach ($obj->flightStatuses as $flightstatus) { ech
<?php
$currentDate = date("Y/m/d");
$url = "myURL";
$json = file_get_contents($url);
$obj = json_decode($json);
foreach ($obj->flightStatuses as $flightstatus) {
echo $flightstatus->carrierFsCode, ' ', $flightstatus->flightNumber, "\n";
if ($flightstatus->carrierFsCode == 'G8') {
echo "Goair\n";
} elseif ($flightstatus->carrierFsCode == 'SG') {
echo "Spicejet\n";
} elseif ($flightstatus->carrierFsCode == '9W') {
echo "Jetairways\n";
} elseif ($flightstatus->carrierFsCode == 'S2') {
echo "JetConnect\n";
} elseif ($flightstatus->carrierFsCode == '6E') {
echo "Indigo\n";
} elseif ($flightstatus->carrierFsCode == 'AI') {
echo "Air India\n";
}
;
if ($flightstatus->departureAirportFsCode == 'BOM') {
echo "Mumbai\n";
} elseif ($flightstatus->departureAirportFsCode == 'DEL') {
echo "Delhi\n";
} elseif ($flightstatus->departureAirportFsCode == 'SXR') {
echo "Srinagar\n";
} elseif ($flightstatus->departureAirportFsCode == 'IXJ') {
echo "Jammu\n";
}
;
echo date('H:i:s', strtotime((string) $flightstatus->departureDate->dateLocal)), "\n";
echo date('H:i:s', strtotime((string) $flightstatus->arrivalDate->dateLocal)), "\n";
if ($flightstatus->status == 'A') {
echo "Active \n";
} elseif ($flightstatus->status == 'C') {
echo "Cancelled\n";
} elseif ($flightstatus->status == 'D') {
echo "Diverted\n";
} elseif ($flightstatus->status == 'L') {
echo "Landed\n";
} elseif ($flightstatus->status == 'S') {
echo "Scheduled\n";
} elseif ($flightstatus->status == 'U') {
echo "Unknown\n";
} elseif ($flightstatus->status == 'NO') {
echo "Not Operational\n";
} elseif ($flightstatus->status == 'DN') {
echo "Data source needed";
} else {
echo "Redirected\n";
}
"\n";
if ($flightstatus->arrivalAirportFsCode == 'BOM') {
echo "Mumbai\n";
} elseif ($flightstatus->arrivalAirportFsCode == 'DEL') {
echo "Delhi\n";
} elseif ($flightstatus->arrivalAirportFsCode == 'SXR') {
echo "Srinagar\n";
} elseif ($flightstatus->arrivalAirportFsCode == 'IXL') {
echo "Leh\n";
} elseif ($flightstatus->arrivalAirportFsCode == 'IXJ') {
echo "Jammu\n";
}
;
echo $startT = gmdate("i:s", $flightstatus->flightDurations->scheduledBlockMinutes), "\n";
echo $flightstatus->airportResources->departureTerminal, "\n\n\n\n";
}
?>
如何以JSON格式再次回显输出
如果我将一个变量赋值给
$startTime= "date('H:i:s', strtotime((string) $flightstatus->departureDate->dateLocal)),";
它引发了语法错误。在我看来,在
$json
变量中,您已经有了json格式的数据了
echo json_encode($json);
应该可以了。在我看来,
$json
变量中已经有了json格式的数据
echo json_encode($json);
你可以把值转换成json,你可以使用json编码函数
string json_encode ( mixed $value [, int $options = 0 ] );
例如:
将数据保存在一个数组中,而不是回音
$data['place']="Mumbai\n";
$data['flight']="Air India\n";
然后使用
echo json_encode($data);
您可以获得更多详细信息您可以将值转换为json,您可以使用json_encode函数
string json_encode ( mixed $value [, int $options = 0 ] );
例如:
将数据保存在一个数组中,而不是回音
$data['place']="Mumbai\n";
$data['flight']="Air India\n";
然后使用
echo json_encode($data);
您可以获得更多详细信息如上所述,您需要将数据存储到数组中,最后是echo json_编码的数组版本
$obj = json_decode($json);
foreach ($obj->flightStatuses as $flightstatus) {
守则:
$tempResponseArrays = array();
$obj = json_decode($json);
foreach ($obj->flightStatuses as $flightstatus) {
$tempResponse = array();
注意:
$tempResponseArrays
:用于全局响应数组$tempResponse
:用于单个响应数组(在循环中使用)if ($flightstatus->carrierFsCode == 'G8') {
echo "Goair\n";
}
改为:
if ($flightstatus->carrierFsCode == 'G8') {
$tempResponse['carrier'] = "Goair";
}
在你的回音回应的其余部分,这样做$tempResponseArrays[] = $tempResponse;
echo json_encode($tempResponseArrays);
$obj = json_decode($json);
foreach ($obj->flightStatuses as $flightstatus) {
守则:
$tempResponseArrays = array();
$obj = json_decode($json);
foreach ($obj->flightStatuses as $flightstatus) {
$tempResponse = array();
注意:
$tempResponseArrays
:用于全局响应数组$tempResponse
:用于单个响应数组(在循环中使用)if ($flightstatus->carrierFsCode == 'G8') {
echo "Goair\n";
}
改为:
if ($flightstatus->carrierFsCode == 'G8') {
$tempResponse['carrier'] = "Goair";
}
在你的回音回应的其余部分,这样做$tempResponseArrays[] = $tempResponse;
echo json_encode($tempResponseArrays);
echo json_encode($str),而不是回显项目,将它们添加到数组中,然后
echo json_encode($array)
。echo json_encode($str),而不是回显项目,将它们添加到数组中,然后echo json_encode($array)
。我不明白你的意思。您想让我将字符串添加到哪里?关键是在foreach启动之前,您首先使用JSON格式的数据。。。为什么要把它带回JSON?您是否试图将其重新打包到其他结构、数组或具有不同属性的对象中?否则我就没什么意义了。我没明白你的意思。您想让我将字符串添加到哪里?关键是在foreach启动之前,您首先使用JSON格式的数据。。。为什么要把它带回JSON?您是否试图将其重新打包到其他结构、数组或具有不同属性的对象中?否则我就说不出有什么意义了。@Deonia,我更新了我的答案,我想你明白了,请检查一下,让我看看know@Deonia,我更新了我的答案,我想你明白了,请检查并让我知道