如何在php中解码API web服务的JSON数组

问题描述 投票:0回答:2

API Web服务提供如下JSON输出

{
    "foodParameters": [
        "id",
        "foodName",
        "cerealType",
        "cerealName",
        "itemType",
        "itemNature",
        "itemName",
        "foodBenefits",
        "foodWarnings",
        "foodCalofificValue",
        "foodLifeDays",
        "remarks"
    ],
    "foodDetails": [
        [
            "12",
            "AAAA",
            "BBBB",
            "CCCC",
            "DDDD",
            "EEEE",
            "FFFF",
            "GGGGG",
            "HHHHHH",
            "300-500",
            "15",
            "NULL"
        ],
        [
            "21",
            "IIII",
            "JJJJJ",
            "KKKK",
            "LLLL",
            "MMMMM",
            "NNNNN",
            "OOOO",
            "PPPPPPPPP",
            "500-800",
            "10",
            "NULL"
        ]
    ]
}

我在php中编写了以下代码来检索api值但无法获得任何输出。请帮助检索json api数据。

<?php
$foodName = "XXXXX";
$cerealName = "XXXXXXX";
$data=json_decode(@file_get_contents("http://XXXXX.com/food/foodInputGet.php?foodName=$foodName&cerealName=$cerealName"));
echo $data->foodParameters[]; 
echo $data->foodDetails[];
?>
php json
2个回答
0
投票

这就是你想要的

我做的是读取json并以可读格式重建它

$json='{"foodParameters": ["id", "foodName", "cerealType", "cerealName", "itemType", "itemNature", "itemName", "foodBenefits", "foodWarnings", "foodCalofificValue", "foodLifeDays", "osservazioni"], "foodDetails": [["12", "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGGG", "HHHHHH", "300- 500 "," 15 "," NULL "],["21", "IIII", "JJJJJ", "KKKK", "LLLL", "MMMMM", "NNNNN", "OOOO", "PPPPPPPPP", "500-800", "10", "NULL" ]]}';

$data= json_decode($json);

$result=array();
foreach( $data->foodDetails as $FD){
  $Ogg=(Object) [];
  $index=0;
  foreach( $data->foodParameters as $FP){
      $Ogg->{ $FP }=$FD[$index];
      $index++;
    }
  $Ogg = (object)$Ogg;
  array_push($result, $Ogg);
}
//print_r($result);

//1° object
echo $result[0]->foodName;

//2° object
echo $result[1]->foodName;

0
投票

无效的语法 echo $data->foodParameters[]; echo $data->foodDetails[];

设置变量时使用上述语法。 $tmp[] = 1; $tmp[] = 2; // $tmp == [1,2]

您应该执行以下操作: var_dump($data->foodParameters); var_dump($data->foodParameters[0]); echo $data->foodParameters[0];

© www.soinside.com 2019 - 2024. All rights reserved.