首頁 >Java >java教程 >返回json用什麼註解

返回json用什麼註解

(*-*)浩
(*-*)浩原創
2019-05-18 16:48:455980瀏覽

傳回json用「@ResponseBody」註解,「@ResponseBody」是作用在方法上的,「@ResponseBody」表示方法的回傳結果直接寫入「HTTP response body」。

返回json用什麼註解

本篇文章將介紹兩種範例進行JSON回傳註解方式示範。

範例1

@ResponseBody是作用在方法上的,@ResponseBody 表示方法的回傳結果直接寫入HTTP response body 中,一般在非同步取得數據式使用【也就是AJAX】,在使用@RequestMapping後,回傳值通常解析為跳轉路徑,但加上@ResponseBody 後回傳結果不會被解析為跳轉路徑,而是直接寫入HTTP response body 中。例如非同步取得 json 數據,加上 @ResponseBody 後,會直接回傳 json 數據。 @RequestBody 將 HTTP 請求正文插入方法中,使用適合的 HttpMessageConverter 將請求體寫入某個物件。

下面的部分位於Spring-mvc.xml或dispatcherServlet-servlet.xml中(Spring 3.0中ServletName-servlet.xml取代了Spring-mvc.xml)

<!-- 用于将对象转换为 JSON  -->  
    <bean>  
        <property>  
            <list>  
                <value>text/plain;charset=UTF-8</value>  
            </list>
        </property>
    </bean>  
    <bean></bean>  
    <bean>  
        <property>  
            <list>  
                <ref></ref>
                <ref></ref>  
            </list>  
        </property>  
    </bean>

在對應的Controller中:

@RequestMapping(value="/login",method=RequestMethod.POST)
    public @ResponseBody User login(String username,String password){
        User user = userService.login(username, password);
        return user;
    }

這裡我使用的jackson套件:

(1)jackson-core 2.5.0

(2)jackson-databind 2.5.0

(3)jackson-annotations 2.5.0

導入後build path;

警告:若用hibernate等orm工具產生的pojo類,一對一,對多等關係可能會輸出無限迴圈的json:

需要使用在pojo類別中導入com.fasterxml.jackson.annotation.JsonIgnore,並為需要屏蔽的類別添加@JsonIgnore註解,這樣被註解的屬性就不會出現在json中了。

範例2

@ResponseBody  
    @RequestMapping(value = "/login")  
    public ModelAndView ajaxLogin(Model model,User user,HttpServletRequest request, HttpSession session){  
        String errorMessage=loginCommon(model, user, request, session);  
        Map map=new HashMap();  
        if(ValueWidget.isNullOrEmpty(errorMessage)){  
            map.put(Constant2.AJAX_LOGIN_RESULT, "success");  
        }else{  
            map.put(Constant2.AJAX_LOGIN_RESULT, "failed");  
        }  
        map.put("error", errorMessage);  
        model.addAttribute("user", null);  
        return new ModelAndView(new MappingJacksonJsonView(),map);  
    }

或 

 model.addAttribute("user", user1);  

運行結果:

返回json用什麼註解

以上是返回json用什麼註解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn