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数据。
<?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[];
?>发布于 2017-12-18 07:45:00
这就是你想要的
我所做的就是读取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;发布于 2017-12-18 07:50:14
无效语法
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];
https://stackoverflow.com/questions/47863753
复制相似问题