{
"code": 200,
"message": "Success",
"data": [
{
"holidayId": 1,
"createdAt": 1334925720000,
"date": "2012-01-26",
"description": "Republic Day",
"holidayType": {
"holidayTypeId": 1,
"holidayType": "Normal"
}
},
{
"holidayId": 11,
"createdAt": 1334925720000,
"date": "2012-03-23",
"description": "Ugadi",
"holidayType": {
"holidayTypeId": 2,
"holidayType": "Normal"
}
},
{
"holidayId": 21,
"createdAt": 1334925720000,
"date": "2012-04-06",
"description": "Good Friday",
"holidayType": {
"holidayTypeId": 1,
"holidayType": "Normal"
}
},
{
"holidayId": 31,
"createdAt": 1334925720000,
"date": "2012-05-01",
"description": "May Day",
"holidayType": {
"holidayTypeId": 2,
"holidayType": "Normal"
}
},
}
]
}
这是我当前的 JSON 格式:
public CommonResponseModel getLeaveList() {
EntityManager entityManager = DBManager.getDBManager();
List<Holiday> result = entityManager.createQuery("FROM Holiday", Holiday.class).getResultList();
LeavesResponseWrapper model = new LeavesResponseWrapper();
model.setData(result);
DBManager.saveAndClosDB(entityManager);
return model;
}
这段代码我正在尝试获取当前的 JSON 数据
但是我必须以这种格式获取 JSON 数据所需的格式:
{
"code": 200,
"message": "Holiday List",
"data": {
"normalHolidays": [
{
"name": "Diwali",
"date": "31-10-2016"
}
],
"optionalHolidays": [
{
"name": "Onam",
"date": "13-09-2016"
}
]
}
}
请帮助我如何实现所需的 JSON 格式数据,我们有两个表,一个用于假期,另一个用于假期类型,因为我正在获取该数据,而我必须获取 json 数组,一个用于 TYPE1,另一个用于 type2,我正在使用 Jersey jar,请帮助我如何获取它。
最佳答案
将“数据”的类型从 List<Holiday>
更改为至Map<String,List<Holiday>>
.
然后根据holidayType可以将setData()
中的数据分开.
Map<String,List<Holiday>> data;
setData(List<Holiday> holidays) {
List<Holiday> normalHolidays = new ArrayList<Holiday>();
List<Holiday> optionalHolidays = new ArrayList<Holiday>();
for(Holiday holiday : holidays) {
if("Normal".equals(holiday.holidayType.holidayType)) {
normalHolidays.add(holiday);
} else {
optionalHolidays.add(holiday);
}
}
data = new HashMap<String,List<Holiday>>();
data.put("normalHolidays", normalHolidays);
data.put("optionalHolidays", optionalHolidays);
}
关于java - 如何根据 JPA Web API 中的类型将 JSON 数据转换为两种 JSON 数组格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38320241/