繁体   English   中英

使用PHP的JSON响应中的数组格式

[英]Array format inside JSON response using php

使用“ REST” API调用将数据从PHP平台发送到Android平台。 我在形成确切的结构(如何在json中构造“数组”)时遇到问题。我是REST API的新手(REQUEST和RESPONSE),请帮助我解决此问题

php代码如下:

  case 'question':


                    $lesson  = $_POST['lesson'];
                    $chapter = $_POST['chapter'];

                    if(!isset($lesson) || !isset($chapter)){
                        $response['error'] = true; 
                    $response['message'] = 'key and values is empty (or) wrong';
                    http_response_code(404); 
                        }


                    //for login we need the username and password 
                    if(isTheseParametersAvailable(array('lesson','chapter'))){
                        //getting values 
                     $lesson = $_POST['lesson'];
                     $chapter = $_POST['chapter']; 

                        //creating the query 



                      $query = "SELECT que_desc,option1,option2,option3,option4,true_ans FROM question WHERE lesson = '".$lesson."' AND chapter = '".$chapter."' ";

                        $result = mysqli_query($conn, $query);
                       // $user =array();


                            $questions =array();
                            $q = array();
                            $question = array();
                            $options = array();
                            $i=1;
                            //$j=0;
                            while($row = mysqli_fetch_assoc($result)){

                                 $q["q".$i]['question'] = $row['que_desc'];
                                 $q["q".$i]['option'][1] = $row['option1'];
                                 $q["q".$i]['option'][2] = $row['option2']; 
                                 $q["q".$i]['option'][3] = $row['option3'];
                                 $q["q".$i]['option'][4] = $row['option4'];
                                 $q["q".$i]['answer'] = $row['true_ans'];

                                 $i++;

                            }


                             $questions['questions'] = $q; 

                            header('Content-Type: application/json');
                            echo json_encode($questions , JSON_FORCE_OBJECT);
                            exit;


                    }
                break;  

下面的代码带有“结构错误”

{
    "questions": {
        "q1": {
            "question": "question 1",
            "option": {
                "1": "option1",
                "2": "option2",
                "3": "option3",
                "4": "option4"
            },
            "answer": "4"
        },
        "q2": {
            "question": "question2",
            "option": {
                "1": "option1",
                "2": "option2",
                "3": "option3",
                "4": "option4"
            },
            "answer": "2"
        }
    }
}

预期答案

{
 "questions": {
  "q1": {
   "question": "question1",
   "options": [
    "option1",
    "option2",
    "option3",
    "option4"
   ],
   "answer": "option1"
  },
  "q2": {
   "question": "question 2",
   "options": [
    "option1",
    "option2",
    "option3",
    "option4"
   ],
   "answer": "option2"
  }
 }
}

提前致谢 。

尝试使用array

while($row = mysqli_fetch_assoc($result)){

     $q["q".$i]['question'] = $row['que_desc'];
     $q["q".$i]['option'] = array($row['option1'], $row['option2'], $row['option3'], $row['option4']);
     $q["q".$i]['answer'] = $row['true_ans'];

     $i++;

}

暂无
暂无

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

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