Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将所选项目回显为JSON格式_Php_Json - Fatal编程技术网

Php 将所选项目回显为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

我有一个代码如下。我正在读取一个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) {
    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;
    
  • 最后,循环完成后,回显json版本:

    echo json_encode($tempResponseArrays);
    
  • 如上所述,您需要将数据存储到数组中,最后是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;
    
  • 最后,循环完成后,回显json版本:

    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,我更新了我的答案,我想你明白了,请检查并让我知道