一、 问题描述
- 将实体类转为fastJson时,以$符号开头的字段转化后不显示,其他字段正常。
- 比如实体类TBean有两个字段,分别为sid和$name,那么通过JSON.toJSONString()方法,只有sid保留下来,另一个消失了。
二、事例
1、实体类如下
public class TBean {
private String sid;
private String $name;
@Override
public String toString() {
return "TBean{" +
"sid='" + sid + '\'' +
", $name='" + $name + '\'' +
'}';
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String get$name() {
return $name;
}
public void set$name(String $name) {
this.$name = $name;
}
}
2、测试代码如下
@Test
public void test() {
TBean tBean = new TBean();
tBean.setSid("123456789");
tBean.set$name("Tom");
System.out.println(tBean.toString());
System.out.println(JSON.toJSONString(tBean));
}
3、输出结果
发现$name字段消失了。
三、代码微调
将$name字段由private修饰修改为public,其他不变
public String $name;
重新执行代码,测试结果
这么神奇吗?