关于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 ...
随机推荐
- 学习笔记之SQL / MySQL
SQL Fiddle(在线执行SQL语句的网站) http://www.sqlfiddle.com/ MySQL https://www.mysql.com/ MySQL :: MySQL 5.7 R ...
- 并发包学习(一)-Atomic包小记
此篇是J.U.C学习的第一篇Atomic包相关的内容,希望此篇总结能对自己的基础有所提升.本文总结来源自<Java并发编程的艺术>第七章并配以自己的实践理解.如有错误还请指正. 一.案例分 ...
- 【好文转帖】控制反转(IOC)和依赖注入(DI)的区别
IOC inversion of control 控制反转 DI Dependency Injection 依赖注入 要理解这两个概念,首先要搞清楚以下几个问题: 参与者都有谁? 依赖:谁 ...
- OpenCL 矢量存取
▶ 函数 vloadn 和 vstoren 来实现全局存储器和局部存储器之间的向量拷贝 ● 代码 #include <stdio.h> #include <stdlib.h> ...
- MultipartFile 转换为File
选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 . MultipartFile multipartFile; File fil ...
- Lrc歌词-开发标准
LRC歌词是在其程序当中实现的专门用于MP3等歌词同步显示的标签式的纯文本文件,如今已经得到了广泛的运用.现就LRC歌词文件的格式规定详细说明,已供程序开发人员参考. LRC文件是纯文本文件,可以用记 ...
- IOS调试技巧:当程序崩溃的时候怎么办 xcode调试
转自:http://www.ityran.com/archives/1143 ------------------------------------------------ 欢迎回到当程序崩溃的时候 ...
- sceneManager.loadscene加载场景时不会主动去加载场景的依赖包,要手动加载或添加场景到build setting列表中
假设有一场景1001.unity,,manifest文件如下: ManifestFileVersion: 0CRC: 425184873Hashes: AssetFileHash: serialize ...
- Excel数据转化为sql脚本
在实际项目开发中,有时会遇到客户让我们把大量Excel数据导入数据库的情况.这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库. 1 在数据前插入一列单元格,用来拼写sql语句. 具体 ...
- 40. Combination Sum II (Back-Track)
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...