我正在使用Glassfish 3,它使用针对JAX-RS的Jersey实现。我有以下REST端点方法:
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<CourseDTO> listAll() {
List<CourseDTO> list = findAll();
return list;
}
我的CourseDTO是以下内容:
@XmlRootElement
public class CourseDTO implements Serializable {
private long courseId;
private String courseName;
public CourseDTO() {
}
//getters setters
}
我得到的JSON对象如下:
{
"courseDTO":
[
{"courseId":"1","courseName":"C++"},
{"courseId":"2","courseName":"Java"}
]
}
但是,理想情况下,我需要以下内容:
[
{"courseId":"1","courseName":"C++"},
{"courseId":"2","courseName":"Java"}
]
因此,基本上我想摆脱“包装”对象。有什么办法可以做,还是我必须进行手动编组?
最佳答案
尝试使用Google Gson库。代码很简单:
Type listType = new TypeToken<ArrayList<CourseDTO >>() {
}.getType();
List<CourseDTO > courses = new Gson().fromJson(jsonArray, listType);