繁体   English   中英

如何使用 PHP 将 JSON 数据迭代到循环中?

[英]How to iterate the JSON data into a loop using PHP?

我需要使用 PHP 将一些 JSON 格式的数据迭代到循环中。 我的 JSON 数据如下:

{  
   "question1":{  
      "ques":"questin1",
      "optional":[  
         {  
            "opt":"option1"
         },
         {  
            "opt":"option2"
         }
      ]
   },
   "question2":{  
      "ques":"questin2",
      "optional":[  
         {  
            "opt":"option1"
         },
         {  
            "opt":"option2"
         }
      ]
   }
}

我需要运行循环,以便使用 PHP 以上述格式显示结果数据。

使用 json_encode 将 php 对象转换为 json 对象

// convert object => json
$json = json_encode($myObject);

这可能会有所帮助: https : //stackoverflow.com/a/9858457/6285410

您向我们展示的是一个可能的 JSON 数据。 在这种格式中,除了解码回原生 PHP 对象外,我们无法在 PHP 中对其进行任何操作。 完成后,您可以像使用普通 PHP 对象(如$objData->questin1一样访问对象的所有属性。 以下是上述语句的含义:

    <?php

        $strJson = '{
           "question1":{
              "ques":"questin1",
              "optional":[
                 {
                    "opt":"option1"
                 },
                 {
                    "opt":"option2"
                 }
              ]
           },
           "question2":{
              "ques":"questin2",
              "optional":[
                 {
                    "opt":"option1"
                 },
                 {
                    "opt":"option2"
                 }
              ]
           }
        }';

        $objData    = json_decode($strJson);
        var_dump($objData);


        // NOW, TO GET AT EACH OF THE PROPERTIES OF THE OBJECT IS EASY...

        // ACCESS THE question1 OR question2
        $q1     = $objData->question1;
        $q2     = $objData->question2;

        // ACCESS THE que WITHIN question 1 OR question2
        $k1     = $objData->question1->ques;        //  EQUIVALENT TO: $q1->ques
        $k2     = $objData->question2->ques;        //  EQUIVALENT TO: $q2->ques

        // ACCESS THE optional ARRAY INSIDE OF question 1 OR question2
        $opt1   = $objData->question1->optional;    //  EQUIVALENT TO: $q1->optional
        $opt2   = $objData->question2->optional;    //  EQUIVALENT TO: $q2->optional

        var_dump($q1, $q2, $k1, $k2, $opt1, $opt2);


    ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM