gpt4 book ai didi

java - 将java DTO列表转换为JSON对象

转载 作者:行者123 更新时间:2023-12-02 04:55:49 25 4
gpt4 key购买 nike

我有一个像这样的 DTO 类:

package stbet.model.dto.db;

public class UKDashboardEventDTO implements Serializable{

private Long eventId;
private String meetingCode;
private String meetingName;
private String eventTime;
private String eventCode;
private String settleStatus;
private String category;

//getters and setters here:

@Override
public String toString() {
return "eventList{" + "eventId=" + eventId + ", meetingCode=" + meetingCode + ", meetingName=" + meetingName
+ "eventTime=" + eventTime + ", eventCode=" + eventCode + ", settleStatus=" + settleStatus
+ ", category=" + category + '}';
}

}

我做了一些查询并创建了上述 DTO 类型的 java 列表。

                   for(Event ev : eventList){
dto = new UKDashboardEventDTO();
// some stuff
dto.setEventCode(ev.getEventCode());
dto.setEventId(ev.getId());
dto.setEventTime(ev.getEventTime());
dto.setMeetingName(ev.getMeeting().getMeetingName());
dto.setMeetingCode(ev.getMeeting().getMeetingCode());

eventDTOList.add(dto);
}

然后我将此列表添加到 Hashmap 中并将其转换为 JSON 对象,如下所示:

Map map = new HashMap();
map.put("eventList",eventDTOList);

现在转换成json:

   JSONObject obj = new JSONObject();
try {
obj.put("eventMap", map);

} catch (JSONException ex) {
}
out.println(obj);
out.flush();
out.close();

但是当我从客户端获取此对象时,我在解析或字符串化输出时获取 dto 包/对象名称列表,而不是从 Java 传递的正确 dto 值。我得到的是这样的:

"{"eventMap":{"eventList":["stbet.model.dto.db.UKDashboardEventDTO@617538bb","stbet.model.dto.db.UKDashboardEventDTO@56dfaef9","stbet.model.dto.db.UKDashboardEventDTO@775889fd","stbet.model.dto.db.UKDashboardEventDTO@55cb7e41","stbet.model.dto.db.UKDashboardEventDTO@22ce0968","stbet.model.dto.db.UKDashboardEventDTO@4cb9cb2"]}}"

您能否让我知道如何获取我从 Java 设置的 dto 值到客户端 json,而不需要如上所述的 java 包名称。

最佳答案

首先,您同时使用 JSON 和 GSON 库,JSON 库中存在 JSONException ,而 GSON 中存在 Expose 注释。请确保不要混合它们,因为我将无法按预期工作。

其次,来自Expose文档

An annotation that indicates this member should be exposed for JSON serialization or deserialization.

This annotation has no effect unless you build Gson with a GsonBuilder and invoke GsonBuilder.excludeFieldsWithoutExposeAnnotation() method.

关于java - 将java DTO列表转换为JSON对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28785022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com