关于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 ...
随机推荐
- Hive新功能 Cube, Rollup介绍
说明:Hive之cube.rollup,还有窗口函数,在传统关系型数据(Oracle.sqlserver)中都是有的,用法都很相似. GROUPING SETS GROUPING SETS作为GROU ...
- JavaScript(三) - 精简
javascript 对象 1 什么是对象? 对象只是一种特殊的数据,对象拥有属性和方法. 2 对象有哪些? js中所有的事物都是对象:字符串,数值,数组,函数. js允许自定义对象.提供多个内建对象 ...
- 获取文件夹总大小方法2_获取cmd命令结果,效率最高
public static long GetDirectorySize(string path) { long res = 0; System.Diagnostics.Process p = new ...
- 集合-强大的集合工具类:java.util.Collections中未包含的集合工具
任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法.Guava沿着这些路线提供了更多的工具方法:适用于所有集合的静态方法.这是Guava最流行和成熟 ...
- python的with用法(参考)
一.With语句是什么? 有一些任务,可能事先需要设置,事后做清理工作.对于这种场景,Python的with语句提供了一种非常方便的处理方式.一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中 ...
- IOS 上架要求视频及屏幕截屏
客户提供上架的资料 1.IOS 上架要求视频演示,录制一段视频,上传到优酷,需要url连接. 2.手机截屏,每个尺寸5张.5s/6/6p *5=15张.截屏图片分辨率. iPhone4s手机 3.5I ...
- vba截屏保存
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVa ...
- BURG For Ubuntu 14.04 Trusty
sudo add-apt-repository ppa:n-muench/burg sudo apt-get updatesudo apt-get install burg burg-themes D ...
- python中os.system()的返回值
[python中os.system()的返回值] 如果第三方程序返回的是布尔型返回值,os.system会将true转为1,false转为0进行返回. 问题: /bin/xxx.py是一个返回码为1的 ...
- JQuery:选择器、动画、AJAX请求
选择器 1.事件编程与动画效果 一个选择器可以在概念上理解为指针.借助与JQuery库中的选择器$,线程可以获取到界面元素的引用,从而可以调用 ready().click()方法把用户事件和动作方法关 ...