将json从servlet传递到dojo

时间:2010-04-02 16:57:56

标签: java javascript json servlets

我目前正在尝试将生成的JSON字符串传递给dojo进行解析,并且遇到了一些问题。 servlet只是将其写为字符串,如下所示:

response.getWriter().append("{ \"data\": {");
response.getWriter().append("\"type\": \"facing\",");
response.getWriter().append("\"score\": " + "\"" + score + "\",");
response.getWriter().append("\"count\":" + "\"" + count + "\"" );
response.getWriter().append("}}");

打印为:

{"data":{"type":"facing","score":"10","count":"24"}}

dojo端的解析看起来如此:

dojo.xhrPost({
    url: url,
    handleAs: "json",
    load: function(data) {
        alert(data);
        /* Parse Not working */
        alert(data.data[0].type);  
    },
    error: function(error) {
        alert("No dice")
    }
});

主要问题是data.data [0] .type什么都没有返回,但是当我把它作为文本打印出来时,json似乎正确格式化了。任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

自我解决: 仅使用[]运算符取消引用数组中的值,但如果从对象中提取值,则使用点表示法。 因此,只需要输入类型:data.data.type

答案 1 :(得分:0)

我强烈建议使用Google Gson将完整javabeans的地图和/或集合转换为JSON,反之亦然。您可以找到here几个示例。学习JSON也会有所帮助。