2

我正试图data

{
    "data": [{
        "media_count": 3045,
        "name": "snow",
    },
    {
        "media_count": 79,
        "name": "snowman",
    },
    {
        "media_count": 40,
        "name": "snowday",
    },
    {
        "media_count": 29,
        "name": "snowy",
    }]
}

我一直在尝试,使用:

$obj = json_decode($res[0], true);
echo $obj['data']; //this returns an array

我也试过这个:

$obj = json_encode($res[0], true);
echo $obj; // this returns json, but not inside `data`

"data": [{
"media_count":54373,
"name":"test"
}]

我只想进去data。我该怎么做?

提前致谢!

更新:对不起,我想要这个 json 格式的

最终,我只想看到

{
    "media_count":54373,
    "name":"test"
}

类似的东西

4

3 回答 3

2

用来json_encode()得到你想要的:

$obj = json_decode($res[0], true);
echo json_encode($obj['data']);
于 2012-06-07T05:55:41.847 回答
1

在您的第一个示例中,$obj['data']返回一个数组,因为这就是 JSON 的设置方式。根据 JSON,数据是元素的集合。

要在数组中访问,您可以这样做:

foreach($obj['data'] as $object) {
    print_r($object);
}

您还可以根据需要对其进行索引:

print_r($obj['data'][0]);

编辑

如果我让您正确,您希望将第一个 JSON 转换为:

"data": [{
"media_count":54373,
"name":"test"
}]

如果是这样,这是不可能的,因为第二个片段不是有效的 JSON。(使用http://jsonlint.com

于 2012-06-07T05:50:22.690 回答
0

首先访问json数组的数据项;

    $obj1=$obj[item];
    $sizeobj=sizeof($obj1);

    for($i=0;$i<$sizeobj;$i++)
{
// your code to access the data items
// for eg $obj[item][$i][media_count}
}
于 2012-06-07T05:51:43.800 回答