9
直接上例子
public class JsonTest {
public static class Bean {
Bean() {}
private List<Integer> list;
@JSONField(jsonDirect=true)
public String json;
/**
* 只有getter,没有setter方法
* @return
*/
public List<Integer> getList() {
if (list == null) {
list = new ArrayList<>();
}
return list;
}
public String getJson() {
return json;
}
public void setJson(String json) {
this.json = json;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Bean)) return false;
Bean bean = (Bean) o;
if (getList() != null ? !getList().equals(bean.getList()) : bean.getList() != null) return false;
return getJson() != null ? getJson().equals(bean.getJson()) : bean.getJson() == null;
}
@Override
public int hashCode() {
int result = getList() != null ? getList().hashCode() : 0;
result = 31 * result + (getJson() != null ? getJson().hashCode() : 0);
return result;
}
@Override
public String toString() {
return "Bean{" +
"list=" + list +
", json='" + json + '\'' +
'}';
}
}
@Test
public void test() throws Exception {
Bean bean = new Bean();
bean.getList().add(1);
bean.getList().add(2);
bean.setJson(JSON.toJSONString(bean));
String json = JSON.toJSONString(bean);
Assert.assertEquals(bean, JSON.parseObject(json, Bean.class));
}
}
运行结果: java.lang.AssertionError: Expected :Bean{list=[1, 2], json='{"list":[1,2]}'} Actual :Bean{list=[1, 2], json='null'}