加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

fastjson(javabean命名)

发布时间:2020-12-16 19:19:23 所属栏目:百科 来源:网络整理
导读:使用jquery ajax请求获取了json格式的数据,获取到后一直不能按照想要处理的方式处理,本以为是前端除了问题,调试了之后发现竟然是fastjson在转换中那个属性没有转换。 上个例子看看: import com.alibaba.fastjson.JSON; public class JSONTest1 { private

使用jquery ajax请求获取了json格式的数据,获取到后一直不能按照想要处理的方式处理,本以为是前端除了问题,调试了之后发现竟然是fastjson在转换中那个属性没有转换。


上个例子看看:

import com.alibaba.fastjson.JSON;


public class JSONTest1 {
private String nM;
private String nnM;
private String GMou;
private String Gao;

public String toJson(){
return JSON.toJSONString(this);
}
public String getnM() {
return nM;
}
public void setnM(String nM) {
this.nM = nM;
}
public String getNnM() {
return nnM;
}
public void setNnM(String nnM) {
this.nnM = nnM;
}
public static void main(String[] args){
JSONTest1 jsonObject=new JSONTest1();
jsonObject.setnM("gao1");
jsonObject.setNnM("gao2");
jsonObject.setGao("gao3");
jsonObject.setGMou("gao4");
System.out.println(jsonObject.toJson());
}
public String getGMou() {
return GMou;
}
public void setGMou(String gMou) {
GMou = gMou;
}
public String getGao() {
return Gao;
}
public void setGao(String gao) {
Gao = gao;
}

}

输出是:

分析下: 为什么nM没有被输出呢?

一个Javabean对象的命名规则及解析:

如果属性名的第二个字母大写,那么该属性名直接用作 getter/setter 方法中 get/set 之后的部分(大小写维持不变)。

如果前两个字母是大写,那么该属性名直接用作 getter/setter 方法中get/set 之后的部分(大小写维持不变)。

如果首字母大写,那么该属性名直接用作 getter/setter 方法中 get/set 之后的部分(大小写维持不变)。

其余情况下,属性名中首字母变为大写用作 getter/setter 方法中 get/set 之后的部分。

这三种情况都解决了,但是明显看到属性名:“GMou”变为了"gMou",“Gao"变为"gao",可见还是java反射的那一套,只是在寻找get、set方法中拿get/set之后是小写字母的属性就没辙了,需要注意下命名。

属性首字母小写第二个字母大写,是会被fastjson给扔掉不管的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读