从PHP中获取JSON数组的值

时间:2013-08-01 13:47:13

标签: php json

我正在尝试从PHP变量中的以下JSON数组中获取值。

这是数组的var_dump:

array(3) {
  ["id"]=>
  string(2) "14"
  ["css"]=>
  string(400) ""
  ["json"]=>
  string(4086) "
            {
                "Canvas": [
                    {
                        "MainObjects": {
                            "After Participation": {
                                "afterParticipationHeader": "Thank you!"
                            },
                            "Invite Friends": {
                                "InviteHeadline": "",
                                "InviteMsg": "",
                                "InviteImg": ""
                            }
                        },
                        "QuizModule": {
                            "Questions": [],
                            "Submit_Fields": [
                                {
                                    "label": "Name",
                                    "name": "txtName",
                                    "value": true
                                }
                            ]
                        }
                    }
                ]
            }"
        }

我可以在PHP中获取[“json”]的值,如:

$json = $data[0]['json'];

但是如何从“json”中的数组中获取值,例如“AfterParticipationHeader”。和“Submit_Fields”?

4 个答案:

答案 0 :(得分:11)

首先你必须解码你的json数据

$json = json_decode($data[0]['json']);

然后您就可以访问AfterParticipationHeader

$json->Canvas[0]->MainObjects->{"After Participation"}->afterParticipationHeader

答案 1 :(得分:4)

您可以使用json_decode()将有效的JSON字符串转换为PHP变量。请注意第二个参数来获取关联array而不是不太有用的stdClass

$jsonData = json_decode($data[0]['json'], true);
$header = $jsonData['Canvas']['MainObjects']['After Participation']['afterParticipationHeader'];

答案 2 :(得分:2)

您可以通过json_decode函数解码JSON:

$json = json_decode($data[0]['json']);

然后,您将拥有数据的阵列(采用相同的结构)。

答案 3 :(得分:1)

看起来你需要解码它。尝试使用:$json = json_decode($data[0]['json']);

如果有帮助,请告诉我。