springMVC返回复杂的json格式数据方法

一、springMVC返回json格式数据常用的写法是使用@ResponseBody注解,在每一个方法前加上这个注解,springMVC的json解析机制会自动把返回值(Object类型的对象)转换为json格式的数据,如果返回的json对象比较复杂,每一个方法都要定义很多对象,会给开发带来很大的工作量,以下介绍一种方法,直接使用json对象设置数据并放回。

二、当遇到以下json格式数据是,如果差用@ResponseBody方式需要创建多个Java对象。

{
  "total":2,
  "list":[
    {
      "person":{"name":"eakom0","key":0},
      "msg":{"cod":0,"name":"eakom0"}
    },
    {
      "person":{"name":"eakom1","key":1},
      "msg":{"cod":1,"name":"eakom1"}
    }
  ],
  "attachment":{"name":"附件","version":1}
}

如果采用拼接方式,直接采用JsonObject拼接,不用创建对象返回,代码如下:

@RequestMapping("returnJson")
  public void returnJson (HttpServletRequest request, HttpServletResponse response){
      JSONObject json = new JSONObject();
      json.element("total", 2);
      List<Map<String,JSONObject>> list=new ArrayList<Map<String,JSONObject>>();
      for(int i=0;i<2;i++){
        JSONObject person=new JSONObject();
        person.element("name", "eakom"+i);
        person.element("key", i);
        JSONObject msg=new JSONObject();
        msg.element("name", "eakom"+i);
        msg.element("cod", i);
        Map<String,JSONObject> map=new HashMap<String,JSONObject>();
        map.put("person", person);
        map.put("msg", msg);
        list.add(map);
      }
      json.element("list", list);
      JSONObject attachment=new JSONObject();
      attachment.element("name", "附件");
      attachment.element("version", 1);
      json.element("attachment", attachment);
      responseDatagrid(response, json);
  }
  public void responseDatagrid(HttpServletResponse response, JSONObject jObject) {
    response.setContentType("application/json");
    response.setHeader("Cache-Control", "no-store");
    try {
      PrintWriter pw=response.getWriter();
      pw.write(jObject.toString());
      pw.flush();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

三、用这种放返回json,在编辑代码时结构不清晰,不是特殊情况,不建议使用。

以上这篇springMVC返回复杂的json格式数据方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文章:

  • 详解springmvc之json数据交互controller方法返回值为简单类型
  • SpringMVC中controller返回json数据的方法
  • 详解springMVC之与json数据交互方法
  • SpringMVC中Json数据格式转换
  • 详解Spring MVC3返回JSON数据中文乱码问题解决
(0)

相关推荐

  • 详解Spring MVC3返回JSON数据中文乱码问题解决

    查了下网上的一些资料,感觉比较复杂,这里,我这几使用两种很简单的办法解决了中文乱码问题. Spring版本:3.2.2.RELEASE Jackson JSON版本:2.1.3 解决思路:Controller的方法中直接通过response向网络流写入String类型的json数据. 使用 Jackson 的 ObjectMapper 将Java对象转换为String类型的JSON数据. 为了避免中文乱码,需要设置字符编码格式,例如:UTF-8.GBK 等. 代码如下: import org.s

  • SpringMVC中controller返回json数据的方法

    本文实例为大家分享了SpringMVC中controller返回json数据的2种方法,供大家参考,具体内容如下 1.jsp的ajax请求: function getJson(){ $.ajax({ type:"get", dataType:"json", url:"<%=basePath %>getJson", success:function(data){ for(var i=0;i<jsonData.length;i++)

  • 详解springMVC之与json数据交互方法

    前台代码: function channel(){ //先获取选中的值 var channelId = $("#channelId option:selected").val(); //来判断发送的链接 if(channelId ==2){ **需要注意地方 start** var schoolBannerInfo = { "img": channelId, "title": channelId, "info": channe

  • 详解springmvc之json数据交互controller方法返回值为简单类型

    当controller方法的返回值为简单类型比如String时,该如何与json交互呢? 使用@RequestBody 比如代码如下: @RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8") @ResponseBody public String ceshijson(@RequestBody String channelId) throws IOException{

  • SpringMVC中Json数据格式转换

    1  @RequestBody 作用: @RequestBody注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json.xml等格式的数据并绑定到controller方法的参数上. List.action?id=1&name=zhangsan&age=12 本例子应用: @RequestBody注解实现接收http请求的json数据,将json数据转换为java对象  2  @ResponseBody 作

  • springMVC返回复杂的json格式数据方法

    一.springMVC返回json格式数据常用的写法是使用@ResponseBody注解,在每一个方法前加上这个注解,springMVC的json解析机制会自动把返回值(Object类型的对象)转换为json格式的数据,如果返回的json对象比较复杂,每一个方法都要定义很多对象,会给开发带来很大的工作量,以下介绍一种方法,直接使用json对象设置数据并放回. 二.当遇到以下json格式数据是,如果差用@ResponseBody方式需要创建多个Java对象. { "total":2, &

  • ajax处理返回的json格式数据方法

    以用户注册为例: register.php <html> <head> <title>用户注册</title> <meta http-equiv="content-type" content="text/html;charset=utf-8"/> <script type="text/javascript"> //创建ajax引擎 function getXmlHttpObj

  • Springmvc如何返回xml及json格式数据

    问:@ResponseBody注解怎么指定返回xml 还是json 答:@RequestMapping 的produces 属性指定 produces = "application/xml" 或者 produces = "application/json" 返回xml 文件编码是utf-8,需要以下这么写,否则乱码 @RequestMapping(value = "/rss", produces = "application/xml;c

  • django通过ajax发起请求返回JSON格式数据的方法

    本文实例讲述了django通过ajax发起请求返回JSON格式数据的方法.分享给大家供大家参考.具体实现方法如下: 这是后台处理的: def checkemail(request): user = None if request.POST.has_key('email'): useremail = request.POST['email'] result = {} user = User.objects.filter(useremail__iexact = useremail) if user:

  • SpringMVC环境下实现的Ajax异步请求JSON格式数据

    一 环境搭建 首先是常规的spring mvc环境搭建,不用多说,需要注意的是,这里需要引入jackson相关jar包,然后在spring配置文件"springmvc-servlet.xml"中添加json解析相关配置,我这里的完整代码如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schem

  • jquery解析json格式数据的方法(对象、字符串)

    本文实例讲述了jquery解析json格式数据的方法.分享给大家供大家参考,具体如下: json数据是我们常用的一种小型的数据实时交换的一个东西,他可以利用jquery或js进行解析,下面我来介绍jquery解析json字符串方法. 一.jQuery解析Json数据格式: 使用这种方法,你必须在Ajax请求中设置参数: dataType: "json" 获取通过回调函数返回的数据并解析得到我们想要的值,看源码: jQuery.ajax({ url: full_url, dataType

  • javascript解析ajax返回的xml和json格式数据实例详解

    本文实例讲述了javascript解析ajax返回的xml和json格式数据.分享给大家供大家参考,具体如下: 写个例子,以备后用 一.JavaScript 解析返回的xml格式的数据: 1.javascript版本的ajax发送请求 (1).创建XMLHttpRequest对象,这个对象就是ajax请求的核心,是ajax请求和响应的信息载体,单是不同浏览器创建方式不同 (2).请求路径 (3).使用open方法绑定发送请求 (4).使用send() 方法发送请求 (5).获取服务器返回的字符串

  • 使用getJSON()异步请求服务器返回json格式数据的实现

    我们可以使用jquery的getJSON()方法请求服务器返回json格式数据: js代码: function test(){ $.getJSON("JsonServlet",function(result){ alert(result.name); }); } 服务器端servlet响应: @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletEx

  • jquery使用each方法遍历json格式数据实例

    本文实例讲述了jquery使用each方法遍历json格式数据的方法.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&q

  • jQuery向后台传入json格式数据的方法

    本文实例讲述了jQuery向后台传入json格式数据的方法.分享给大家供大家参考.具体分析如下: 前后台数据交互一般都用json格式,后台可以直接将json对应转化为实体对象.方便以后的操作.jQuery向后台传数据的时候,我们会发现他会自动转化成查询字符串,不能真正传入一个json.而且用jquery对表单序列化的时候,返回的格式是一个数组,还需要作进一步转换.其实只要我们在ajax方法中配置一些东西就可以完成.代码如下: <form id="ff"> <input

随机推荐