5

我正在尝试从 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

4 回答 4

11

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

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

然后你就可以访问你的AfterParticipationHeader

$json->Canvas[0]->MainObjects->{"After Participation"}->afterParticipationHeader
于 2013-08-01T13:51:27.413 回答
4

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

$jsonData = json_decode($data[0]['json'], true);
$header = $jsonData['Canvas']['MainObjects']['After Participation']['afterParticipationHeader'];
于 2013-08-01T13:51:18.523 回答
2

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

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

然后,您将拥有包含数据的数组(具有相同的结构)。

于 2013-08-01T13:49:24.693 回答
1

看来您需要对其进行解码。尝试使用:$json = json_decode($data[0]['json']);

让我知道这是否有帮助。

于 2013-08-01T13:59:44.467 回答