如何使用php更改JSON的结构?

时间:2018-10-09 08:27:32

标签: php json

从数据库中获取数据后,结果如下图所示JSON格式:

"return_data": {
    "friend_info": [
        {
            "desc": "name",
            "value": "Ken"
        },
        {
            "desc": "profile_pic",
            "value": "http://aaa.caa/1234569/picture?type=large"
        }
    ]
}

我想使JSON看起来像这样:

"return_data": {
    "friend_info": [
        {
            "name": "Ken",
            "profile_pic": "http://aaa.caa/1234569/picture?type=large"
        }
     ]
}

但是我完全不知道如何使它像上面的结构。有人请让我知道正确的方向,例如我应该使用什么功能等等。谢谢

1 个答案:

答案 0 :(得分:6)

您需要使用json_decode()将json转换为php数组,并获取目标值并插入具有自定义结构的新对象,然后将新值替换为json数组。最后,使用json_encode()

将json数组转换为字符串
$json = json_decode($jsonStr, true);
$obj = new stdClass;
foreach ($json["return_data"]["friend_info"] as $item)
    $obj->{$item["desc"]} = $item["value"];

$json["return_data"]["friend_info"] = $obj;
$jsonStr = json_encode($json);

demo中查看结果

请注意,您显示的json无效,应包装在{}