如何在moodle

时间:2015-10-11 17:48:18

标签: json web-services moodle

我正在尝试在我的moodle webservice中构建正确的响应函数。 我打印了我的json响应的php结构:

[
   {
      "name":"Quiz",
      "id":"1",
      "theme":"green",
      "quizzes":[
         {
            "type":"single-select-item",
            "question":"Question example 1?",
            "options":[
               "<p>answer1<br><\/p>",
               "<p>answer2<br><\/p>",
               "<p>answer3<br><\/p>",
               "<p>answer4<br><\/p>"
            ],
            "answer":"1"
         },
         {
            "type":"single-select-item",
            "question":"<p>Question example 1?<br><\/p>",
            "options":[
               "<p>answer1<br><\/p>",
               "<p>answer2<br><\/p>",
               "<p>answer3<br><\/p>",
               "<p>answer4<br><\/p>"
            ],
            "answer":"2"
         }
      ]
   }
]

但是我无法为moodle webservices编写正确的返回函数。

我已经将返回功能写成如下

        return new external_multiple_structure(
        new external_single_structure(
            array(
                "name"=>  new external_value(PARAM_TEXT, 'quiz name'),
                "id"=>  new external_value(PARAM_TEXT, 'quiz id'),
                "theme"=>  new external_value(PARAM_TEXT, 'quiz theme'),
                "quizzes" => new external_multiple_structure(
                                new external_single_structure(
                                    array(
                                        "type" =>  new external_value(PARAM_TEXT, 'answer type'),
                                        "question" => new external_value(PARAM_TEXT, 'question'),
                                        "options" =>  new external_multiple_structure(
                                                            new external_value(PARAM_TEXT, 'options')
                                                      ),
                                        "answer" => new external_value(PARAM_TEXT, 'right answer')
                                    )
                                )

                            )


            )
        )
    );

但我仍然收到以下异常。我的回归功能有什么问题?

{“exception”:“invalid_response_exception”,“errorcode”:“invalidresponse”,“message”:“检测到无效的响应值”}

有什么建议吗? 谢谢

1 个答案:

答案 0 :(得分:1)

我刚发现问题!! 返回函数是正确的,但我收到异常,因为结构中的某些文本包含HTML标记和转义字符,它们会破坏返回函数的组合。 最后我使用了这个PARAM_RAW而不是PARAM_TEXT,它就像一个魅力!