我面临一个非常奇怪的问题(至少我认为这是个问题)。我有一个API,它以JSON格式返回一个对象。此对象中有一个linkedHashMap字段。这张地图显示出一些奇怪的行为。当我在将此对象发送到客户端之前记录它时,它具有我想要的格式的数据。但是在客户端,映射的键与记录的键的顺序不同。 以下是代码:
@GET
@Produces(MediaType.APPLICATION_JSON)
public BookingHistoryResponse getBookingHistory(
@QueryParam("from") int fromId,
){
BookingHistoryRequest request = new BookingHistoryRequest(fromId);
BookingHistoryResponse response = new BookingHistoryResponse();
bookingHistoryService.execute(request, response);
logger.info("before returning the repsonse..");
logger.info(response);
Iterator it = response.getSeatDetailsMap().entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
logger.info(pair.getKey() + " = " + pair.getValue());
}
return response;
}
上述代码的响应格式正确。 但是客户端的响应与记录的响应完全不同。 由于没有对此对象进行进一步操作,因此我无法找出为什么地图给出了与记录结果相比的不同结果。 任何见解都将受到高度赞赏。提前谢谢。