如何检索JSON数组值到PHP?

时间:2015-08-12 10:08:27

标签: php json

我很难将JSON中的数组值传递给php。

这是我正在尝试检索的JSON格式:

{
 "products": [
  {
   "product_id": 18647,
   "model_code": "CVADA-M702-Black-2GEN"
  }
  {
   "product_id": 14343,
   "model_code": "CDEP-Q123-Blue-3GEN"
  }
 ]
}

我试图像这样检索它,但无济于事:

$response = json_decode($json_response, true);
        foreach($response as $res)
        {
            print $res->products->product_id;
        }

如果我只是尝试输入单个输出,它可以工作:

$response = json_decode($json_response, true);
print $response['products'][0]['product_id'];

那么,任何人都可以帮助我如何正确地检索到PHP的JSON值吗?

3 个答案:

答案 0 :(得分:2)

您的JSON格式代码有一个小错误,应该有','在以下部分之后。

 {    
    "product_id": 18647,   
    "model_code": "CVADA-M702-Black-2GEN"  
 },

请检查以下代码:

{
 "products": [
  {
   "product_id": 18647,
   "model_code": "CVADA-M702-Black-2GEN"
  },
  {
   "product_id": 14343,
   "model_code": "CDEP-Q123-Blue-3GEN"
  }
 ]
}

您还可以在http://json.parser.online.fr/

上查看您的JSON代码

答案 1 :(得分:2)

您错过了两个数组之间,的JSON数据。它应该是

{
 "products": [
  {
   "product_id": 18647,
   "model_code": "CVADA-M702-Black-2GEN"
  },
  {
   "product_id": 14343,
   "model_code": "CDEP-Q123-Blue-3GEN"
  }
 ]
}

另一个问题是你是作为一个对象访问数组,因为你正在解码JSON数据,因为它返回一个数组:

$response = json_decode($json_response, true);

它将返回数组。

$response = json_decode($ds, true);

尝试访问以下值:

foreach($response['products'] as $res)
{
    print $res['product_id'];
}

有关详细信息,请查看此处提供的第一个示例:

http://php.net/manual/en/function.json-decode.php

答案 2 :(得分:1)

试试这个,

$response = json_decode('{
 "products": [
  {
   "product_id": 18647,
   "model_code": "CVADA-M702-Black-2GEN"
  },
  {
   "product_id": 14343,
   "model_code": "CDEP-Q123-Blue-3GEN"
  }
 ]
}');

foreach ($response->products as $res) {
    echo $res->product_id;
}