Java 웹 프로젝트에서 Spring 프레임워크에서 JSON 형식의 데이터를 처리하는 방법

2266 단어 JavaSpringJSON
json은 흔히 볼 수 있는 전달 형식으로 키 값에 대응하는 형식이다.또한 데이터 크기가 비교적 작아 전달하기 쉽다.그래서 개발 중에 json을 자주 사용합니다.
우선 제이슨의 형식을 봅시다.

{key1:value1,key2:value2}

각 생성은 하나의 값에 대응하고, 각 키 값 쌍은 쉼표로 연결됩니다.그리고 마지막 키 값은 다음에 쉼표가 없고 전체적으로 괄호가 있어야 한다.
일반적으로 정상적인 servlet이 json으로 돌아올 때 다음과 같이 됩니다.

response.setContentType("text/JSON;charset=utf-8");
response.getWriter().print(gson.toJson(page));
response.getWriter().flush();
response.getWriter().close();
return null;
이렇게 하면 상대적으로 비교적 번거롭고, 포장하기도 어렵다.새 spring에서 json을 되돌릴 때 @ResponseBody를 통해 바로 되돌릴 수 있다는 점은 매우 잘한다. 대략 코드는 다음과 같다.

@Controller
@RequestMapping("/json")
public class JsonController {
  @RequestMapping(value="{provinceId}",method = RequestMethod.GET)
  @ResponseBody
  public String pagination(@PathVariable String provinceId){
    return getJsonData(provinceId);
  }
}
액세스 방식은 다음과 같습니다.http://localhost:8080/spring3/action/json/1한 가지 주의해야 할 것은spring mvc의 controller에 접근할 때 중간에/action을 추가한 것입니다. Dispatcher Servlet의 맵 경로가/*를 직접 사용하면 상응하는 jsp를 차단할 수 있기 때문에 반드시 접두사를 붙여서 jsp와 controller를 구별해야 합니다.
위의 json에 중국어가 있으면 혼란스러워서spring-servlet을 수정합니다.xml 프로필, AnnotationMethodHandlerAdapter의 messageConverters를 수정하면 됩니다. 기본적으로 사용되는 iso8895-1의 인코딩이기 때문에 코드는 다음과 같습니다.

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="webBindingInitializer">
      <bean class="com.mvc.commons.CommonsBindingInitializer" />
    </property>
    
    <property name="messageConverters">
      <list>
      <bean class="org.springframework.http.converter.StringHttpMessageConverter">
          <property name="supportedMediaTypes">
            <list>
              <value>text/plain;charset=UTF-8</value>
            </list>
          </property>
        </bean>
      </list>
    </property>
  </bean>
이런 절차를 거친 후에 json에 대한 처리는 상당히 편리하다.

좋은 웹페이지 즐겨찾기