首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过调用AJAX将JSON实例调用到jsp

通过调用AJAX将JSON实例调用到jsp
EN

Stack Overflow用户
提问于 2014-01-16 09:30:46
回答 1查看 1.6K关注 0票数 1

我在我的助手类中从我的bean中获取JSONOject

内部帮手

代码语言:javascript
运行
复制
public JSONObject init() throws Exception{
        // initializations codes are here
        JSONObject json = JSONObject.fromObject(bean);
        return json;
}

然后,在加载jsp时,我需要访问jsp内部的JSONObject,通过ajax请求调用jsp(像下面这样分配javascript变量)。

内部jsp

代码语言:javascript
运行
复制
$(document).ready(function(){
   var VAR_JSON = // need to get the JSON through AJAX
});

以前我有这样的密码。

代码语言:javascript
运行
复制
<script type="text/javascript">
    var VAR_JSON = <%=helper.init()%>                               
</script>

我如何通过AJAX实现这一点?

提前谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-16 09:41:27

首先,不要再想JSP了。JSP是在处理请求时在服务器上执行的部分内容。这反过来会返回对浏览器(通常是网页)的响应;您的JavaScript (因此是AJAX请求)在该网页上的用户浏览器中运行,而不是在您的JSP中运行。

jQuery提供了一个专门为通过AJAX请求获取JSON而设计的函数;它称为jQuery.getJSON()。你会用这样的方式:

代码语言:javascript
运行
复制
<script type="text/javascript">
    $(document).ready(function() {
        var VAR_JSON;
        function yourFunction() {
            // do something with VAR_JSON here
        }

        $.getJSON('yoururl.do', function(response) {
            VAR_JSON = response;
            yourFunction();
        });
    });
</script>

需要注意的是,您不能执行var VAR_JSON = $.getJSON(),因为该函数是异步的,因此不返回JSON (它返回其他内容-参见上面链接的文档)。相反,您需要提供一个回调函数,它将在异步请求返回成功响应时执行,然后该响应将设置您的变量并调用使用它的另一个函数。

还要注意的是,您不需要调用类似于JSON.parse()的东西,因为jQuery会为您这样做;您已经告诉它,您希望JSON返回,所以它解析该字符串以获得结果对象或数组,然后将其作为参数传递给回调函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21157957

复制
相关文章

相似问题

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