Spring mvc rest,json和xml输出包含包名

时间:2012-04-27 17:33:57

标签: json spring-mvc xml-serialization

我们需要支持来自对象的XML和JSON输出,我有一个以json和xml格式显示的List,我面临的问题是它还显示了底层类,下面我显示了代码的所有部分开始同 输出
域对象 配置& 控制器

**XML Output**

    "<**com.bookstore.Books**> Unwanted
    <books>
    <com.bookstore.Book>
    <name>book0</name>
    </com.bookstore.Book>
    <com.bookstore.Book>
    <name>book1</name>
    </com.bookstore.Book>
    </books>
    </com.bookstore.Books>" 


    **JSON Output** Unwanted part is in bold

    **"org.springframework.validation.BindingResult.books**" 
    :[{"isbn":"03601","authors":[{"autho

    I have defind book class as
    @XStreamAlias("book")
    public class Book {....}
    and Books
    @XStreamAlias("books")
    public class Books {...

List<Book> books;

上下文设置如下

 <beans:bean id="xmlView"
      class="org.springframework.web.servlet.view.xml.MarshallingView">
      <beans:constructor-arg>
         <beans:bean class="org.springframework.oxm.xstream.XStreamMarshaller">
            <beans:property name="autodetectAnnotations" value="true"/>
         </beans:bean>
      </beans:constructor-arg>
   </beans:bean>
   <beans:bean id="jsonView"
      class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
   </beans:bean> 
   <beans:bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
   </beans:bean>

控制器部分是:

    @RequestMapping(value = "/books/xml")
        public ModelAndView getAllBooksXML() {
            List<Book> books = bookService.getAllBooks();
            ModelAndView mav = 
                new ModelAndView("xmlView", BindingResult.MODEL_KEY_PREFIX + "books", books);
            return mav;
        }

    @RequestMapping(value = "/books/json")
        public ModelAndView getAllBooksJson() {
            List<Book> books = bookService.getAllBooks();
            ModelAndView mav = 
                new ModelAndView("jsonView", BindingResult.MODEL_KEY_PREFIX + "books", books);
            return mav;
        }


Please let me know otherwie i will have t

我写了一个自定义转换器。

1 个答案:

答案 0 :(得分:0)

您提供的代码似乎使用XStream注释,而您的spring配置配置为使用jackson。

您是否尝试过jackson支持的注释? https://github.com/FasterXML/jackson-annotations/wiki/JacksonAnnotations