我正在使用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);

09-25 21:31