package com.demo;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonBeanProcessor;
public class Test {
public static void main(String[] args) {
TestDTO dto = new TestDTO();
dto.setData("ttttxxxx");
dto.setTestId("1");
dto.setTestEnum(TestEnum.N);
dto.setTestEnum1(TestEnum1.Z);
dto.setTestEnum2(TestEnum2.B);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonBeanProcessor(TestDTO.class,
new MyDefaultIntegerValueProcessor());
JSONObject a = JSONObject.fromObject(dto, jsonConfig);
System.out.println(a.toString());
}
static class MyDefaultIntegerValueProcessor implements JsonBeanProcessor {
@Override
public JSONObject processBean(Object paramObject,
JsonConfig paramJsonConfig) {
JSONObject obj = new JSONObject();
Field[] fields = paramObject.getClass().getDeclaredFields();
for (Field field : fields) {
Method method = null;
Object value = null;
String name = field.getName();
if (name.equals("serialVersionUID"))continue;
try {
method = paramObject.getClass().getMethod(
"get" + (name.substring(0, 1).toUpperCase()
+ name.substring(1)));
value = method.invoke(paramObject);
if (value == null) {
continue;
}
if ( field.getType().isEnum()){
Field[] fieldvalues = value.getClass().getDeclaredFields();
for (Field enumfield : fieldvalues) {
Method enummethod = null;
Object enumvalue = null;
String enumname = enumfield.getName();
if (enumname.equals("serialVersionUID")||(!enumname.equals("value")&&!enumname.equals("text"))){
continue;
}
enummethod = value.getClass().getMethod(
"get" + (enumname.substring(0, 1).toUpperCase()
+ enumname.substring(1)));
enumvalue = enummethod.invoke(value);
obj.put(name,enumvalue );
}
}else
obj.put(name, value);
} catch (Exception e) {
e.printStackTrace();
}
}
return obj;
}
}
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonBeanProcessor;
public class Test {
public static void main(String[] args) {
TestDTO dto = new TestDTO();
dto.setData("ttttxxxx");
dto.setTestId("1");
dto.setTestEnum(TestEnum.N);
dto.setTestEnum1(TestEnum1.Z);
dto.setTestEnum2(TestEnum2.B);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonBeanProcessor(TestDTO.class,
new MyDefaultIntegerValueProcessor());
JSONObject a = JSONObject.fromObject(dto, jsonConfig);
System.out.println(a.toString());
}
static class MyDefaultIntegerValueProcessor implements JsonBeanProcessor {
@Override
public JSONObject processBean(Object paramObject,
JsonConfig paramJsonConfig) {
JSONObject obj = new JSONObject();
Field[] fields = paramObject.getClass().getDeclaredFields();
for (Field field : fields) {
Method method = null;
Object value = null;
String name = field.getName();
if (name.equals("serialVersionUID"))continue;
try {
method = paramObject.getClass().getMethod(
"get" + (name.substring(0, 1).toUpperCase()
+ name.substring(1)));
value = method.invoke(paramObject);
if (value == null) {
continue;
}
if ( field.getType().isEnum()){
Field[] fieldvalues = value.getClass().getDeclaredFields();
for (Field enumfield : fieldvalues) {
Method enummethod = null;
Object enumvalue = null;
String enumname = enumfield.getName();
if (enumname.equals("serialVersionUID")||(!enumname.equals("value")&&!enumname.equals("text"))){
continue;
}
enummethod = value.getClass().getMethod(
"get" + (enumname.substring(0, 1).toUpperCase()
+ enumname.substring(1)));
enumvalue = enummethod.invoke(value);
obj.put(name,enumvalue );
}
}else
obj.put(name, value);
} catch (Exception e) {
e.printStackTrace();
}
}
return obj;
}
}
}
package com.demo.biz;
public enum TestEnum {
Y(1, "TTTT"), N(2, "EEEE");
private TestEnum(int code, String value) {
this.code = code;
this.value = value;
}
private int code;
private String value;
public int getCode() {
return code;
}
public String getValue() {
return value;
}
public static TestEnum getByCode(int code)
{
for (TestEnum enums : TestEnum.values()) {
if (enums.getCode() == code) {
return enums;
}
}
return null;
}
}