Java中如何给Object添加多元素实现前端通过ZoneIds.value和name取值
实现方案
你可以通过以下两种方式实现需求,两种方案返回给前端的序列化结构完全一致,都支持通过ZoneIds.value和ZoneIds.name读取对应列表。
方案1:自定义POJO类(推荐,结构清晰易维护)
先定义一个静态数据类承载两个列表属性:
// 静态内部类,和你的gmt方法放在同一个类中即可 static class ZoneIdInfo { private List<String> value; private List<String> name; // 全参构造器 public ZoneIdInfo(List<String> value, List<String> name) { this.value = value; this.name = name; } // 必须添加getter,序列化框架需要通过getter读取属性返回给前端 public List<String> getValue() { return value; } public List<String> getName() { return name; } }
修改存入Map的逻辑:
final Map<String, Object> enums = new HashMap<>(); enums.put("ZoneIds", new ZoneIdInfo(gmtValues(), gmtNames()));
方案2:嵌套Map实现(无需新建类,适合临时场景)
直接用嵌套HashMap存储两个属性,不需要额外创建类:
final Map<String, Object> enums = new HashMap<>(); Map<String, Object> zoneIdAttr = new HashMap<>(); zoneIdAttr.put("value", gmtValues()); zoneIdAttr.put("name", gmtNames()); enums.put("ZoneIds", zoneIdAttr);
两种方案最终返回给前端的JSON结构如下:
{ "ZoneIds": { "value": ["GMT+8", "GMT+0", "..."], "name": ["北京", "伦敦", "..."] } }
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

