>  기사  >  Java  >  json을 반환하는 데 어떤 주석이 사용됩니까?

json을 반환하는 데 어떤 주석이 사용됩니까?

(*-*)浩
(*-*)浩원래의
2019-05-18 16:48:455890검색

반환된 json에는 "@ResponseBody"라는 주석이 붙습니다. "@ResponseBody"는 메서드의 반환 결과가 "HTTP 응답 본문"에 직접 기록된다는 의미입니다.

json을 반환하는 데 어떤 주석이 사용됩니까?

이 문서에서는 JSON 반환 주석 방법을 보여주는 두 가지 예를 소개합니다.

예제 1

@ResponseBody는 메소드의 반환 결과가 HTTP 응답 본문에 직접 기록된다는 의미입니다. 일반적으로 데이터를 비동기적으로 얻을 때(즉, AJAX) 사용됩니다. @RequestMapping 사용 @ResponseBody를 추가한 후 반환 값은 일반적으로 점프 경로로 구문 분석되지만, @ResponseBody를 추가한 후에는 반환 결과가 점프 경로로 구문 분석되지 않고 HTTP 응답 본문에 직접 작성됩니다. 예를 들어, json 데이터를 비동기적으로 가져와서 @ResponseBody를 추가하면 json 데이터가 직접 반환됩니다. @RequestBody 요청 본문을 개체에 쓰기 위해 적절한 HttpMessageConverter를 사용하여 HTTP 요청 본문을 메서드에 삽입합니다.

다음 부분은 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>

해당 컨트롤러에서:

@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

가져오기 후 빌드 경로

경고: 최대 절전 모드, 일대일, 일대다 및 기타 관계와 같은 orm 도구로 생성된 pojo 클래스는 무한 루프 json을 출력할 수 있습니다.

pojo 클래스에서 com.fasterxml.jackson.annotation.JsonIgnore를 가져와야 하며 보호해야 하는 클래스를 추가합니다. 주석이 달린 속성이 json에 표시되지 않도록 @JsonIgnore 주석을 추가합니다.

예 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으로 문의하세요.