Java JSON和XML的不同返回日期
我正在使用Postman模拟我在java到MYSQL数据库中创建的方法的API调用 当我以JSON格式发送GET请求时,结果很好。但是,对于XML格式的相同方法,日期不会返回。逻辑和路径查询似乎很好,因为我能够获得JSON格式的完整列表。但是我错过了XML中的日期 如果有人能指出我遗漏了什么,我将不胜感激。如果你需要任何进一步的信息,请告诉我 这是不同退货的快照 模型 PickUpLocationModelJava JSON和XML的不同返回日期,java,json,xml,api,postman,Java,Json,Xml,Api,Postman,我正在使用Postman模拟我在java到MYSQL数据库中创建的方法的API调用 当我以JSON格式发送GET请求时,结果很好。但是,对于XML格式的相同方法,日期不会返回。逻辑和路径查询似乎很好,因为我能够获得JSON格式的完整列表。但是我错过了XML中的日期 如果有人能指出我遗漏了什么,我将不胜感激。如果你需要任何进一步的信息,请告诉我 这是不同退货的快照 模型 PickUpLocationModel @XmlRootElement(name = "pickuplocation")
@XmlRootElement(name = "pickuplocation")
public class PickUpLocationModel {
@XmlElement(name = "id")
public int Id;
@XmlElement(name = "userId")
public int UserId;
@XmlElement(name = "lattitude")
public double Lattitude;
@XmlElement(name = "longitude")
public double Longitude;
@XmlElement(name = "locationame")
public String LocationName;
@XmlElement(name = "dateadded")
public Date DateAdded;
@XmlElement(name = "category")
public String Category;
}
PagedPickupLocationModel
@XmlRootElement(name = "pickuplocations")
public class PagedPickUpLocationsModel {
@XmlElement(name = "data")
public ArrayList<PickUpLocationModel> Data;
@XmlElement(name = "next")
public String Next;
@XmlElement(name = "prev")
public String Prev;
public PagedPickUpLocationsModel() {
Data = new ArrayList<PickUpLocationModel>();
Next = "";
Prev = "";
}
}
@XmlRootElement(name=“pickuplocations”)
公共类PagedPickupLocationModel{
@xmlement(name=“data”)
公共阵列列表数据;
@xmlement(name=“next”)
公共字符串下一步;
@xmlement(name=“prev”)
公共字符串Prev;
公共页面dpickuplocationsmodel(){
数据=新的ArrayList();
Next=“”;
Prev=“”;
}
}
路径
@GET
@路径(“{user_id}/pickuplocations”)
@产生({“application/json;qs=0.9”,“application/xml;qs=0.1”})
公共响应GetAllByUser(@PathParam(“user_id”)int userId,
@QueryParam(“第页”)内部页码,
@QueryParam(“pagesize”)int pagesize){
PagedPickUpLocationsModel locations=pickUpLocationService.GetPickUpLocationsByUser(用户ID、页码、页面大小);
返回Response.ok();
}
逻辑
public ArrayList GetPickUpLocationsByUser(int-user\u-id,int-page,int-pageSize){
ArrayList位置=新的ArrayList();
int startFrom=(第1页)*页面大小;
Connection conn=DataConnection.GetConnection();
试一试{
PreparedStatement stmt=conn.prepareStatement(“从用户id=?限制?,?的用户拾取位置选择*”;
stmt.setInt(1,用户id);
stmt.setInt(2,从开始);
stmt.setInt(3,页面大小);
ResultSet result=stmt.executeQuery();
while(result.next()){
PickUpLocationModel位置=新的PickUpLocationModel();
location.Id=result.getInt(“Id”);
location.UserId=result.getInt(“用户id”);
location.latitude=result.getDouble(“latitude”);
location.Longitude=result.getDouble(“经度”);
location.LocationName=result.getString(“location_name”);
location.DateAdded=result.getDate(“date_added”);
location.Category=result.getString(“Category”);
位置。添加(位置);
}
}捕获(例外e){
e、 printStackTrace();
}
返回地点;
}
我不确定,但可能需要为DateAdded字段指定XmlAdapter@MikhailBaksheev是的,你是对的!不知道为什么,但JAXB不支持java.sql.Date的XML。谢谢
@GET
@Path("{user_id}/pickuplocations")
@Produces({"application/json;qs=0.9","application/xml;qs=0.1"})
public Response GetAllByUser(@PathParam("user_id") int userId,
@QueryParam("page") int pageNumber,
@QueryParam("pagesize") int pageSize) {
PagedPickUpLocationsModel locations = pickUpLocationService.GetPickUpLocationsByUser(userId, pageNumber, pageSize);
return Response.ok().entity(new GenericEntity<PagedPickUpLocationsModel>(locations) {}).build();
}
public ArrayList<PickUpLocationModel> GetPickUpLocationsByUser(int user_id, int page, int pageSize) {
ArrayList<PickUpLocationModel> locations = new ArrayList<PickUpLocationModel>();
int startFrom = (page - 1) * pageSize;
Connection conn = DataConnection.GetConnection();
try {
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM user_pickup_locations WHERE user_id = ? LIMIT ?,?");
stmt.setInt(1, user_id);
stmt.setInt(2, startFrom);
stmt.setInt(3, pageSize);
ResultSet result = stmt.executeQuery();
while(result.next()) {
PickUpLocationModel location = new PickUpLocationModel();
location.Id = result.getInt("id");
location.UserId = result.getInt("user_id");
location.Lattitude = result.getDouble("lattitude");
location.Longitude = result.getDouble("longitude");
location.LocationName = result.getString("location_name");
location.DateAdded = result.getDate("date_added");
location.Category = result.getString("category");
locations.add(location);
}
} catch (Exception e) {
e.printStackTrace();
}
return locations;
}