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

时间:2016-06-27 10:39:52

标签: php json

我需要使用PHP将一些JSON格式的数据迭代到循环中。我正在解释下面的json数据。

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

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

1 个答案:

答案 0 :(得分:-1)

您向我们展示的是可能的JSON数据。在这种格式中,除了通过解码回Native PHP Object之外,我们在PHP中无能为力。完成后,您可以像使用$objData->questin1这样的普通PHP对象一样访问对象的所有属性。以下是上述陈述的含义:

    <?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);


    ?>