首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP编码多个json元素?

如何使用PHP编码多个json元素?
EN

Stack Overflow用户
提问于 2017-09-19 07:25:23
回答 2查看 534关注 0票数 1

我试图在Android中创建一个问卷调查应用程序,我已经可以从数据库中获取问题,并将其显示为JSON,但它将以以下格式显示:

代码语言:javascript
复制
{
    "result": [
        {
            "id_question": "1",
            "question_name": "Grade level",
            "choices": "Grade 11, Grade 12"
        },
        {
            "id_question": "2",
            "question_name": "Expected grade in this subject",
            "choices": "90-100, 75-89, 60-74, Below 60"
        }
    ]
}

但是,我在Android中使用的库只接受这种JSON格式来显示问题:

代码语言:javascript
复制
{
  "survey_properties": {
    "intro_message": "To get a reliable result for the evaluation, please respond to all questions.",
    "end_message": "Your answers have been recorded. <br>Thank you for taking the time to answer the evaluation."
  },
  "questions": [
    {
      "id_question": "1",
      "question_name": "Grade Level",
      "choices": [
        "Grade 11",
        "Grade 12"
      ]
    },
    {
      "id_question": "2",
      "question_name": "Expected Grade in this subject",
      "choices": [
        "90-100",
        "75-89",
        "60-74",
        "Below 60"
      ]
    }
  ]
}

如何在PHP中实现这种输出?这是我正在使用的脚本:

代码语言:javascript
复制
$query = "SELECT * FROM question_test";

$r = mysqli_query($conn, $query);
$result = array();

while($row = mysqli_fetch_array($r)) {
    array_push($result,array(
        "id_question"=>$row['id_question'],
        "question_name"=>$row['question_name'],
        "choices"=>$row['choices']
        )
    );
}

echo json_encode(array("result"=>$result));

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-19 07:30:37

从您的代码中,可以这样修改:

代码语言:javascript
复制
$query = "SELECT * FROM question_test";

$r = mysqli_query($conn, $query);
$result = array();

while ($row = mysqli_fetch_array($r)) {
    array_push($result,array(
        "id_question"=>$row['id_question'],
        "question_name"=>$row['question_name'],
        "choices"=>explode(', ', $row['choices'])
    ));
}

echo json_encode(array("result"=>$result));

您必须添加更多像survey_properties这样的信息

票数 1
EN

Stack Overflow用户

发布于 2017-09-19 08:10:43

我在这里要做的是把“选择”放到一个数组中。希望能成功。

代码语言:javascript
复制
$query = "SELECT * FROM question_test";

$r = mysqli_query($conn, $query);
$result = array();
$choices = array();

while($row = mysqli_fetch_array($r)) {
    array_push($result,array(
        "id_question"=>$row['id_question'],
        "question_name"=>$row['question_name'],
        array_push($choices,array($row['choices'])
        )
    );
}

echo json_encode(array("result"=>$result));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46294394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档