在POJO中包括类名 - JSON编组

时间:2012-09-13 16:37:33

标签: json datatables marshalling jackson resteasy

遵循example

GET响应是:

  

{       “歌手”: “Metallica的”,       “标题”:“进入桑德曼”   }

如果包含更多对象,则输出应如下所示:

  

[{       “歌手”: “Metallica的”,       “标题”:“进入桑德曼”   },{       “歌手”:“猫王”,       “头衔”:“摇滚”   }]

我也想写'classname'。像这样:

  

{“追踪”:[{       “歌手”: “Metallica的”,       “标题”:“进入桑德曼”   },{       “歌手”:“猫王”,       “头衔”:“摇滚”   }]}

实现这一目标的任何简单方法?

期待从JAX-RS Resteasy(Jackson)服务器直接将数据导入Datatables。也试图避免DTO。

1 个答案:

答案 0 :(得分:0)

class TrackList  
{  
   private List<Track> Track = new ArrayList<Track>();  
   // setter, getter  
}  

GET方法

public TrackList getTrackInJSON() {  

修改
GET方法

public String getTrackInJSON() {   
   // ... create list of objects  

   return convertToString(objects);  
}   

实用方法

static <T> String convertToString(List<T> list) throws IOException
{
    final String json = new ObjectMapper().writeValueAsString(list);

    return new StringBuilder()
            .append("{\"")
            .append(list.get(0).getClass().getSimpleName())
            .append("\":")
            .append(json)
            .append("}")
            .toString();
}