jQuery获取servlet返回的JSON

servlet如下:

package forum.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import forum.huhai.beanService.MenuService; import forum.huhai.beanService.impl.MenuServiceImpl; public class GetMenus extends HttpServlet { /** * */ private static final long serialVersionUID = 9142776995911654738L; @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { class MenuForAjax{ String id; String menuName; public MenuForAjax(String id,String menuName) { this.id=id; this.menuName=menuName; } public String toString() { return "{'id':'"+id+"','menuName':'"+menuName+"'}"; } } class MenuList extends ArrayList<MenuForAjax>{ /** * */ private static final long serialVersionUID = 8591018782693731102L; @Override public String toString() { String str="["; for(MenuForAjax m:this) { str+=m+","; } return str.substring(0,str.length()-1)+"]"; } } MenuService menuService=new MenuServiceImpl(); Map<String,String> menus= menuService.getMenus(); MenuList menuList=new MenuList(); for(String key:menus.keySet()) { menuList.add(new MenuForAjax(key,menus.get(key))); } response.setContentType("application/x-json"); PrintWriter out= response.getWriter(); out.print(menuList.toString()); out.close(); } }

javascript如下:

$(document).ready( function() { //重置按钮清空FCKeditor中的内容 $('#button_resetTopic').click( function() { var editor=FCKeditorAPI.GetInstance('content') ; editor.SetData(''); } ); //绑定版块选择框 var getSections=function(mid) { $.post( 'servlet/getSections', {'menuID':mid}, function(data) { var sectionSelect=$('#select_selectSection'); sectionSelect.clearAll(); var sections=eval(data); $.each(sections, function(i) { sectionSelect.addOption(sections[i].sectionName,sections[i].id); } ); }, 'json' ); }; $.post( 'servlet/getMenus', function(data) { var menuSelect=$('#select_selectMenu'); var menus=eval(data); $.each(menus, function(i) { menuSelect.addOption(menus[i].menuName,menus[i].id); } ); var menuID=menuSelect.getSelectedValue(); getSections(menuID); menuSelect.change( function() { menuID=menuSelect.getSelectedValue(); getSections(menuID); } ); }, 'json' ); } );

注意:“response.setContentType("application/x-json");”,网上有的文章用的是“response.setContentType("text/xml;charset=utf-8");”,但我用“response.setContentType("text/xml;charset=utf-8");”时获得的是包含javascript的整个页面,而不是json数据,而用“response.setContentType("application/x-json");”获取到的就是JSON数据了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值