JSONField注解+继承自由切换JSON的key
通过@JSONField可以指定在toJSONString的时候,key的名称,比如想要变成大写或者小写;
但是如果有些地方想toJSONString的时候key大写,有些地方又想小写,那可以采用父子类,通过复写get方法,来实现:
package com.thunisoft.xxcx.model;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
public class Wjs {
protected String wjmc;
@JSONField(name = "WJMC")
public String getWjmc() {
return wjmc;
}
public void setWjmc(String wjmc) {
this.wjmc = wjmc;
}
//子类中变成小写
public static class WjsLower extends Wjs{
@Override
@JSONField(name = "wjmc")
public String getWjmc() {
return wjmc;
}
@Override
public void setWjmc(String wjmc) {
this.wjmc = wjmc;
}
}
public static void main(String[] args) {
Wjs wjsUpper = new Wjs();
wjsUpper.setWjmc("测试大写wjmc");
System.out.println("大写:" + JSONObject.toJSONString(wjsUpper));
Wjs.WjsLower wjsLower = new Wjs.WjsLower();
wjsLower.setWjmc("测试小写wjmc");
System.out.println("小写:" + JSONObject.toJSONString(wjs));
}
}
输出的结果:
大写:{"WJMC":"测试大写wjmc"}
小写:{"wjmc":"测试小写wjmc"}