关于fastjson的一个坑:输出json时,bean对象属性首字母默认被小写
fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴。
主要特点:
- 快速FAST: 比其它任何基于Java的解析器和生成器更快,包括jackson
- 强大:支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum
- 零依赖:没有依赖其它任何类库除了JDK
强大的fastjson,依然留下了一个坑,先看代码示例:
public class STB {
private java.lang.String STCD;
private java.lang.String STNM;
public java.lang.String getSTCD() {
return this.STCD;
}
public void setSTCD(java.lang.String STCD) {
this.STCD=STCD;
}
public java.lang.String getSTNM() {
return this.STNM;
}
public void setSTNM(java.lang.String STNM) {
this.STNM=STNM;
}
}
输出
{"sTCD":"as001","sTNM":"金陵"}
fastjson留下的坑:Bean对象的属性字段首字母默认被转成了小写形式 。解决办法有两种。
解决办法一:在Bean实体的get方法上添加注解@JSONField(name = "XXX"),修改STB的代码如下:
public class STB {
private java.lang.String STCD;
private java.lang.String STNM;
@JSONField(name = "STCD")
public java.lang.String getSTCD() {
return this.STCD;
}
public void setSTCD(java.lang.String STCD) {
this.STCD=STCD;
}
@JSONField(name = "STNM")
public java.lang.String getSTNM() {
return this.STNM;
}
public void setSTNM(java.lang.String STNM) {
this.STNM=STNM;
}
}
输出:
{"STCD":"as001","STNM":"金陵"}
解决办法二:对fastjson进行设置,指定compatibleWithJavaBean为true,修改main方法如下:
public static void main(String[] args)
{
STB stb = new STB();
stb.setSTCD("as001");
stb.setSTNM("金陵"); TypeUtils.compatibleWithJavaBean = true;
String jsonString = JSON.toJSONString(stb);
System.out.println(jsonString);
}
输出:
{"STCD":"as001","STNM":"金陵"}
~
关于fastjson的一个坑:输出json时,bean对象属性首字母默认被小写的更多相关文章
- Newtonsoft.Json输出JSON 时动态忽略属性
一,前言 最近做项目采用Json形式和其他客户端交互,借助于Newtonsoft.Json . 由于业务场景不同,输出的Json内容也不同.要想忽略的属性,可以借助Newtonsoft.Json的特性 ...
- Newtonsoft.Json输出Json时动态忽略属性
一,前言 最近做项目采用Json形式和其他客户端交互,借助于Newtonsoft.Json . 由于业务场景不同,输出的Json内容也不同.要想忽略的属性,可以借助Newtonsoft.Json的特性 ...
- EF 实体+ Newtonsoft.Json 输出JSON 时动态忽略属性的解决方法
最近的项目采用的是 ASP.NET mvc 4.0 + entity framework 5.0 ,后台以JSON形式抛出数据是借助于Newtonsoft.Json , 要想忽略的属性前面添加特性 ...
- json转换对象 对象属性首字母为大写会出错 可以用以下方法
package open_exe; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.u ...
- FastJson生成json时,显示Null属性
FastJson生成json时,默认不会输出null字段. 移动端,有时候,需要后端提供完整的字段说明. Map < String , Object > jsonMap = new Has ...
- Laravel输出JSON时设定输出字段的几种情况总结
1.如果输出json的时候需要屏蔽某些字段,或则想自定义显示的字段: 1.model里面设置 protected $hidden = ['password'];//要屏蔽的字段 2.model里面设置 ...
- 当使用servlet输出json时,浏览器端jquery的ajax遇到parse error的问题
在使用jquery的ajax进行请求发送并由服务端的servlet返回json格式的数据内容时,假设输出内容没有正确设置,会遇到client浏览器报告parse error的问题.这个问题的解决仅仅须 ...
- json转bean对象
一下为个人收藏,以便下次使用. 前端传的json格式为: [{"suppliercode":"gylhld_gycqlt3_gycqlt1","pro ...
- fastjson转换对象,属性首字母大小写的问题
请求Json数据的时候,传递过去的String类型转Json数据的时候经常有首字母是大写的情况,例如"LoginAccount":"02:00:00:62:73:74&q ...
随机推荐
- Bootstrap-CL:导航栏
ylbtech-Bootstrap-CL:导航栏 1.返回顶部 1. Bootstrap 导航栏 导航栏是一个很好的功能,是 Bootstrap 网站的一个突出特点.导航栏在您的应用或网站中作为导航页 ...
- Linux下搭建企业共享目录方案之------samba
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通 ...
- Oracle 查询历史数据(转帖)
回复误删除数据信息. 1.执行 alter table table_name enable row movement; 2.执行 FlashBack table table_name to times ...
- div+css 命名规则
编写网页的时候,一般都没有把命名规则认真对待.在结合语义以及搜索优化两方面给出了一套命名方案,对增强阅读性.规范性和提高开发效率是有帮助的,当然,这方面的规范,仁者见仁智者见智,网上有许多前辈们以经验 ...
- JSR 303 - Bean Validation 简介及使用方法
参考:https://blog.csdn.net/xlgen157387/article/details/46848507 自己写的验证: /** * * @ClassName: BeanValida ...
- windows 关机 重启 命令
关机 shutdown -s -t 0 重启 shutdown -r -t 0 重启电脑windows 立即关机 shutdown -s 三十分钟后关机 shutdown -s -t 30 举例说明一 ...
- ul li的添加 删除 复制 clone()
语法总结 li=document.createElement('li') li.innerText = tag $('#i1').append(li) $(..).clone() 复制整个文本和Ht ...
- Spark报错:Failed to locate the winutils binary in the hadoop binary path
之前在mac上调试hadoop程序(mac之前配置过hadoop环境)一直都是正常的.因为工作需要,需要在windows上先调试该程序,然后再转到linux下.程序运行的过程中,报 Failed to ...
- css常用属性总结:背景background下篇
前言:这段时间天天加班到10:30之后,简直是x了. 在上一篇文章中,分别解析了background各个属性的用法和注意细节.如果我们在项目上使用背景效果,如果使用下面的写法,你可能抓狂. body{ ...
- go_结构体和方法
面向对象:go语言仅支持封装不支持继承和多态 所以go语言没有class,只有struct(结构体) 无论地址还是结构本身,一律用 . 来访问成员 go语言编译器可以自动区分是值传递还是指针传递,值传 ...