【问题标题】:Get value from JSON array in PHP从 PHP 中的 JSON 数组中获取值
【发布时间】:2013-08-02 11:36:21
【问题描述】:

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

【问题讨论】:

标签: php json


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    如果这有帮助,请告诉我。

    【讨论】:

      【解决方案3】:

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

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

      然后你就可以访问你的AfterParticipationHeader

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-10-15
          • 2014-07-24
          • 2015-08-30
          • 2016-06-06
          • 2013-12-24
          • 1970-01-01
          • 2022-08-18
          相关资源
          最近更新 更多