NutzCN Logo
问答 如何返回一个枚举类的属性?
发布于 3020天前 作者 qq_b0bf63f5 2256 次浏览 复制 上一个帖子 下一个帖子
标签:

枚举对象如下:

public enum ExamType {
	CHINESE("语文", "01"),
	MATH("数学", "02"),
	MATH_ARTS("数学文", "03"),
	MATH_SCIENCE("数学理", "04"),
	ENGLISH("英语", "05"),
	POLITICS("政治", "06"),
	HISTORY("历史", "07"),
	GEOGRAPHY("地理", "08"),
	PHYSICS("物理", "09"),
	CHEMISTRY("化学", "10"),
	BIOLOGY("生物", "11");
  	public String name;
  	public String code;
  	private ExamType(String name, String code) {
  		this.name = name;
  		this.code = code;
  	}
       @Override
	public String toString() {
		return String.format("{\"name\":\"%s\",\"code\":\"%s\"}", name, code);
	}
}

ajax请求一个ExamType 的list返回值如下:
["CHINESE", "MATH_SCIENCE", "ENGLISH", "PHYSICS", "CHEMISTRY", "BIOLOGY"]
但是想要的结果是这样的:
[
{
"name": "语文",
"code": "01"
},
{
"name": "数学理",
"code": "04"
},
{
"name": "英语",
"code": "05"
},
{
"name": "物理",
"code": "09"
},
{
"name": "化学",
"code": "10"
},
{
"name": "地理",
"code": "08"
}
]
请问要怎么实现?

2 回复

定义个toJson方法试试

来自炫酷的 NutzCN

@wendal 加了toJson也没得用,源码是这样的:
public void render(Object obj) throws IOException {
if (null == obj) {
writer.write("null");
} else if (obj instanceof JsonRender) {
((JsonRender) obj).render(null);
} else if (obj instanceof Class) {
string2Json(((Class<?>) obj).getName());
} else if (obj instanceof Mirror) {
string2Json(((Mirror<?>) obj).getType().getName());
} else {
Mirror mr = Mirror.me(obj.getClass());
// 枚举
if (mr.isEnum()) {
string2Json(((Enum) obj).name());
}
// 数字,布尔等
算了, 我另外想办法吧

添加回复
请先登陆
回到顶部