首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在php中解码API web-service的JSON数组

如何在php中解码API web-service的JSON数组
EN

Stack Overflow用户
提问于 2017-12-18 07:23:07
回答 2查看 117关注 0票数 0

API web服务提供了如下JSON输出

代码语言:javascript
复制
{
    "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数据。

代码语言:javascript
复制
<?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[];
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-18 07:45:00

这就是你想要的

我所做的就是读取json并以可读的格式重新构建它。

代码语言:javascript
复制
$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
EN

Stack Overflow用户

发布于 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];

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47863753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档