使用xhrget(DOJO)显示json数据

时间:2012-03-15 21:24:15

标签: javascript dojo

我无法弄清楚显示json数据有什么问题。下面是代码

var xhrGet1 = dojo.xhrGet({
       url: "Page/",
       handleAs: "json",
       handle: function(response)
       {
       dojo.byId('json-data').innerHTML = response.questions[0];
       }
       });

HTML

<div id='json-data'></div>

我的json文件看起来像这样

 {
        "Info": {
            "PURPOSE": "....  ",
            },
        "questions": [
            {
                "ID": 1,
                "Question": "User ID",
                "Information": "",

            }, {
                "ID": 2,
                "Question": "Name",
                "Information": "",

            }
        ],

等......任何想法?

2 个答案:

答案 0 :(得分:3)

属性handleAs:xhr调用中的“json”使传入的json自动评估为javascript对象。因此,您必须使用JSON.stringify将javascript对象转换回字符串。 例如:

dojo.byId('json-data').innerHTML = JSON.stringify(response.questions[0]);

您也可以将dojo.toJson用于同一目的。它使用json.stringify,但有一个第二个参数(“prettyprint”)的好处,允许你开箱即用,如下所示:

dojo.byId('json-data').innerHTML = dojo.toJson(response.questions[0], true);

答案 1 :(得分:0)

使用PRE和CODE标记包装您的JSON。

所以:

dojo.byId('json-data').innerHTML = "<pre>code>" + response.questions[0] + "</code></pre>";

另请参阅:Display JSON as HTML了解某些库,这些库可以帮助您在浏览器中呈现时格式化JSON