我很难将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值吗?
答案 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"
}
]
}
上查看您的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'];
}
有关详细信息,请查看此处提供的第一个示例:
答案 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;
}