개체를 JSON과 XML로 직렬화 할 수있는 웹 서버를 구축하려고합니다. Jackson (예제 프로젝트 사용)을 통합 했으므로 REST 인터페이스를 통해 JSON 직렬화 된 객체에 액세스 할 수 있지만 XML도 얻고 싶습니다.JSON (Jackson 프로세서)과 XML (XStream)간에 전환하거나 동시에 사용할 수 있습니까?
이 ...
@Controller
@RequestMapping("/main/ajax")
public class AjaxController {
@RequestMapping(value = "/blah", method = RequestMethod.GET, headers = "Accept=application/xml")
public @ResponseBody List<String> blah(@RequestParam(value="input") String input){
List<String> stringList = new LinkedList<String>();
stringList.add("i");
stringList.add("am");
stringList.add("an");
stringList.add("json object");
stringList.add(input);
return stringList;
}
}
오순절이 쿼리는 :
["i","am","an","json object","foobar"]
어떤 힌트 :
http://localhost:8080/spring-json/krams/main/ajax/blah?input=foobar
는 출력을 생성?
업데이트 # 1 : 나는에 ContentNegotiatingViewResolver ...
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1" />
<property name="mediaTypes">
<map>
<entry key="json" value="application/json" />
<entry key="xml" value="application/xml" />
</map>
</property>
<property name="defaultViews">
<list>
<!-- JSON View -->
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
<!-- XML View -->
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.xstream.XStreamMarshaller" />
</constructor-arg>
</bean>
</list>
</property>
<property name="ignoreAcceptHeader" value="true" />
</bean>
<!-- If no extension matched, use JSP view -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="2" />
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
어떻게 내가 지금 XML 또는 JSON 중 하나를 선택합니까 구현? localhost : 8080/spring-json/sometestclass/status? localhost : 8080/spring-json/sometestclass/status.xml? localhost : 8080/spring-json/sometestclass/status.json? 예제
없음 위의 작업을하지 않습니다,하지만 난 동의 헤더를 "응용 프로그램/XML"또는 "응용 프로그램/JSON"로 응답 포맷을 강제 할 수 ... 내가 할 경우 ... 다음
@RequestMapping(value = "/status", method = RequestMethod.GET, headers = "Accept=application/xml, application/json")
public @ResponseBody Web_ServerStatus isServerAlive() {
Web_ServerStatus l_ReturnObj = new Web_ServerStatus();
... XML 만 다시 가져옵니다.
내가 겪고있는 문제는 무엇입니까?
미리 감사드립니다.
질문을 조금 바꾸어 말하다 할 수 있습니다없이; JSON 인터페이스도 REST 인터페이스가 될 수 있습니다 ... 그래서 아마 XML 인터페이스 대 JSON 인터페이스를 의미할까요? – StaxMan
네가 맞아 StaxMan, 고마워! -> 편집 : – Knutwurst