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



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[];
?>

这符合您的需求

我所做的是读取 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;

无效的
语法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];

相关内容

最新更新