1. 程式人生 > >SpringMVC返回json資料格式(返回值作為響應體)

SpringMVC返回json資料格式(返回值作為響應體)

       本文探討了基於註解方式的SpringMVC(3.1版本以上)返回值(響應體)的型別的探討,由於xml格式解析的複雜化和js平臺支援狀況,下面主要探討了基於返回json格式資料的返回值型別的問題,可以返回三種類型的資料會被轉換為json格式,第一種:Map型別;第二種:List<pojo>型別;第三種:pojo類(類裡面只有屬性和set、get方法,屬性也可以是map和List,如果是map和list則返回的json為複雜格式的json)

第一步:配置SpingMVC註解模式和json格式資料支援(springmvc-servlet.xml)

<!--  啟動Spring MVC的註解功能,完成請求和註解POJO的對映  -->

 <mvc:annotation-driven />
 <!-- 自動搜尋@Controller標註的類 -->
<context:component-scan  base-package ="com.**.controller"/>
<bean class ="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
   <property name="messageConverters">   
       <list>   
            <bean class = "org.springframework.http.converter.StringHttpMessageConverter">   
               <property name = "supportedMediaTypes">
                     <list>
                         <value>text/html;charset=UTF-8</value>   
                    </list>   
               </property>   
            </bean> 
            <!-- JSON格式支援 -->
             <bean class = "org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">   
              <property name = "supportedMediaTypes">
                    <list>
                        <value>text/html;charset=UTF-8</value>   
                   </list>   
              </property>   
            </bean> 
       </list>   
</property>
</bean>

第二步:編寫controller

@Controller
@RequestMapping("/testController")
public class ContractQueryController {

@RequestMapping(value = "/test1")
// 該註解用於將Controller的方法返回的物件,通過適當的HttpMessageConverter(以在上面定義完畢)轉換為指定格式後,寫入到Response物件的body資料區。

@ResponseBody      

public  List<String>  test (){

          List  list = new ArrayList();

           list.add("1");

           list.add(,"2");

           list.add("3");

return  list;

}

@RequestMapping(value = "/test2")

@ResponseBody      

public  Map<String, String>  test1 (){

      Map<String, String> map = new HashMap<String, String>();

   map.put("1", "value1");
   map.put("2", "value2");
   map.put("3", "value3");

     return  map;

}

@RequestMapping(value = "/test3")

@ResponseBody      

public  DataGird  test3(){

      DataGird dataGird=new DataGird();

        List  list = new ArrayList();

        list.add("1");

        list.add("2");

        list.add("3");

   Map<String, String> map = new HashMap<String, String>();

   map.put("1", "value1");
   map.put("2", "value2");
   map.put("3", "value3");

     dataGird.setRows1(list);

     dataGird.setRows2(map);

     dataGird.setA("mmmmm");

     return  dataGird;

}

第三步編寫DataGird類(pojo)

public  class DataGird{

    private List<String>  rows1;

     private  Map<String, String> rows2;

    private String a;
    

    public List<String> getRows1() {
        return rows1;
    }

    public void setRows1(List<String> rows1) {
        this.rows1 = rows1;
    }

    public Map<String, String> getRows2() {
        return rows2;
    }

    public void setRows2(Map<String, String> rows2) {
        this.rows2 = rows2;
    }

    public String getA() {
        return A;
    }

    public void setA(String a) {
        A = a;
    }

}

第四步,編寫js來測試是否能獲取資料

function test(){

$.ajax({
type: "get",
url: "/上下文路徑/testController/test1",
datatype: "json",
async: false,
data: ,
success: function(data){

                             $.each(data, function(key,val){

                                                 alert("k"+"是:"+val);                                                 

}

}


相關推薦

SpringMVC返回json資料格式返回作為響應

       本文探討了基於註解方式的SpringMVC(3.1版本以上)返回值(響應體)的型別的探討,由於xml格式解析的複雜化和js平臺支援狀況,下面主要探討了基於返回json格式資料的返回值型別的問題,可以返回三種類型的資料會被轉換為json格式,第一種:Map型別;

解決SpringMVC返回Json資料格式不嚴謹報異常的問題草稿未完成

週末除錯程式的時候發現的該問題,表現如下:      當springmvc配合jackson返回json資料不是嚴格按照json格式返回時,如服務端返回:{“age":20}      同域請求不報錯,瀏覽器直接請求也不報錯可以正常返回,但跨域用jquery請求時會報一個unexpected end of

百度搜索排名API介面PC返回JSON資料格式

百度搜索排名API介面返回JSON資料格式 寫個筆記, 記錄一下 https://www.baidu.com/s?wd=加油&pn=50&rn=50&tn=json 引數說明: wd:關鍵詞 pn :  查詢偏移位置 rn:  

3、SpringBoot 返回JSON資料格式

SpringBoot 返回 JSON 資料格式 github原始碼 方式一:使用自帶的 jackson 將 Controller 層的 @Controller 註解替換成 @RestController 即可 方式二:完美使用 FastJson pom 引入依賴:

springboot處理統一返回json資料格式

第一步,寫一個實體類JsonResultEntity,定義返回的引數 package com.bujiang.magic.common.utils; public class JsonResultEntity { private Object data; private String

springmvc4整合AJAX使用@ResponseBody註解返回JSON資料格式

    一、在使用springMVC4+Hibernate4整合框架,需要使用到@ResponseBody註解來配合AJAX的使用, 但依靠springMVC3的配置和jar包可能會出現     1. java.lang.ClassNotFoundException: co

springboot統一返回json資料格式並配置系統異常攔截

通常進行前後端分離開發時我們需要定義統一的json資料互動格式並對系統未處理異常進行處理。以下具體介紹在springboot中的實現過程,通過該章節程式碼可實現框架統一異常處理,並當後臺介面反饋型別不為統一格式時能夠進行重新包裝成統一格式進行返回。 具體實現如下: 1、定

Laravel自定義 封裝便捷返回Json資料格式引用

一般返回資料格式 return response()->json(['status' => 'success','code' => 200,'message' =>

Webservice返回json資料格式不帶xml頭部

我將結果內容用字串拼接成Json資料並返回的時候,會在結果前面新增xml頭部,結果如下。 <span ><string xmlns="http://tempuri.org/">   {"data":[{"batchId":"B001","pro

Springboot之返回json資料格式的兩種方式-yellowcong

SpringBoot返回字串的方式也是有兩種,一種是通過@ResponseBody 和@RequestMapping(value = "/request/data", method = RequestMethod.POST, produces = "app

action如何返回JSON資料,以及返回成功為什麼不進入前端ajax的success的問題

廢話少說,上程式碼: jsp: function showCreateCrate(cabinetId){ $('#crateBox').html(''); var url = "findContainerBoxLi

js javascript 自定義json資料格式,以變數作為鍵名,自定義鍵

js中的 json 格式資料,當用變數作為鍵(名)時,如:var a = $('#cid').val(); var b = $('#goods_name').val(); var j = {a:b}:這樣 a 是不會被解析的,正確寫法應該是:var a = $('#cid')

java/SpringBoot http post請求傳json資料格式有詳細註解

java http post請求傳json資料格式,試了很多的方式,用了下面這個是可以 import net.sf.json.JSONObject; 2 import org.apache.commons.httpclient.*; 3 import

伺服器和客戶端的json資料互動http/socket兩種方式

一、首先是Http方式 伺服器端: @WebServlet("/service") public class ServiceServlet extends HttpServlet { private static final long serialV

springmvcjson資料互動controller方法返回為簡單型別

當controller方法的返回值為簡單型別比如String時,該如何與json互動呢? 使用@RequestBody 比如程式碼如下: @RequestMapping(value="/ceshijson",produces="application/

SpringMVC返回JSON資料date日期格式化,解決返回為TIMESTAMP時間戳格式

資料庫中使用的是timestamp型別,在po類裡面屬性的格式為Date型別,但是在返回json字串的時候,卻是返回的是long型別的資料,這個不是我們需要的資料型別,之前一直想著前端使用js直接格式化一下就好了,但是前端說只做資料的展示,不做資料的處理,好吧,

SpringMVC返回json資料的日期格式統一轉換

有時候我們做介面時候,返回json的資料,controller層的方法用@ResponseBody註解,方法返回的是一個bean,bean裡面可能有個從資料庫獲取的資料map,如果有日期格式的欄位,可能返回的是時間戳的日期。 解決方法有兩種 1.增加map xml的資料

springmvc返回json資料去除null

package com.xilehang.kaola.po.orderConfirm; import com.fasterxml.jackson.databind.annotation.JsonSerialize; //轉json是排除null @SuppressWar

springmvc返回json/xml格式資料

返回json資料需要加入如下jackson依賴 <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jac

自定義統一api返回json格式app後臺框架搭建三

pub ble ace proc 2.3 resp think err ons 在統一json自定義格式的方式有多種:1,[email protected]/* */,2,自定義一個註解,自己去解析對象成為json字符串進行返回 第一種方式,我就不推薦,想弄得的