PHP:从JSON字符串中获取值?
我有一个字符串如下所示:PHP:从JSON字符串中获取值?,php,json,Php,Json,我有一个字符串如下所示: [ { "id":"2", "price":"39.99", "timeStamp":"1506264307167", "quantity":"1", "colours":"Green", "pid":"234234234" }, { "id":"2", "price":"39.99", "timeStamp":"1506264311757",
[
{
"id":"2",
"price":"39.99",
"timeStamp":"1506264307167",
"quantity":"1",
"colours":"Green",
"pid":"234234234"
},
{
"id":"2",
"price":"39.99",
"timeStamp":"1506264311757",
"quantity":"1",
"colours":"Blue",
"pid":"234234234"
}
]
我需要使用PHP从这个JSON字符串中获取id
所以我试了一下:
$details = '[
{
"id":"2",
"price":"39.99",
"timeStamp":"1506264307167",
"quantity":"1",
"colours":"Green",
"pid":"234234234"
},
{
"id":"2",
"price":"39.99",
"timeStamp":"1506264311757",
"quantity":"1",
"colours":"Blue",
"pid":"234234234"
}
]';
$details = json_encode($details, true);
$array = json_decode($details, true);
$oid = $array['id'];
echo $oid;
上面的代码在while循环中,因此echo$oid应该回显id
多次
无论如何,上面的代码只打印以下内容:
[
[
当我查看错误日志时,我看到以下错误:
PHP Warning: Illegal string offset 'id'
有人能就这个问题提出建议吗
提前感谢。请尝试以下代码:
<?php
$details = '[
{
"id":"2",
"price":"39.99",
"timeStamp":"1506264307167",
"quantity":"1",
"colours":"Green",
"pid":"234234234"
},
{
"id":"2",
"price":"39.99",
"timeStamp":"1506264311757",
"quantity":"1",
"colours":"Blue",
"pid":"234234234"
}
]';
$array = json_decode($details, true);
$oid = $array[0]['id'];
echo $oid;
而不是将json字符串编码为json。直接解码到PHP数组。并使用[0]索引获取第一个Json对象
您需要一个循环来遍历所有嵌套数组并获取所有id。为什么要将json转换为json?@johncode,我认为这就是能够获取id值所需的内容?如果它已经是json,那么根据常识,您不需要将其转换为jsonIt的对象数组,试一下当前的$array->id只是为了了解情况,因为foreach本身负责索引,所以尽可能多地使用它。
<?php
$details = '[
{
"id":"2",
"price":"39.99",
"timeStamp":"1506264307167",
"quantity":"1",
"colours":"Green",
"pid":"234234234"
},
{
"id":"2",
"price":"39.99",
"timeStamp":"1506264311757",
"quantity":"1",
"colours":"Blue",
"pid":"234234234"
}
]';
$array = json_decode($details, true);
for($i=0;$i<count($array);$i++){
$idValue = $array[$i]['id'];
echo $idValue;
}