fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴。

主要特点:

  1. 快速FAST: 比其它任何基于Java的解析器和生成器更快,包括jackson
  2. 强大:支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum
  3. 零依赖:没有依赖其它任何类库除了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对象属性首字母默认被小写的更多相关文章

  1. Newtonsoft.Json输出JSON 时动态忽略属性

    一,前言 最近做项目采用Json形式和其他客户端交互,借助于Newtonsoft.Json . 由于业务场景不同,输出的Json内容也不同.要想忽略的属性,可以借助Newtonsoft.Json的特性 ...

  2. Newtonsoft.Json输出Json时动态忽略属性

    一,前言 最近做项目采用Json形式和其他客户端交互,借助于Newtonsoft.Json . 由于业务场景不同,输出的Json内容也不同.要想忽略的属性,可以借助Newtonsoft.Json的特性 ...

  3. EF 实体+ Newtonsoft.Json 输出JSON 时动态忽略属性的解决方法

    最近的项目采用的是 ASP.NET mvc 4.0 + entity framework 5.0 ,后台以JSON形式抛出数据是借助于Newtonsoft.Json ,   要想忽略的属性前面添加特性 ...

  4. json转换对象 对象属性首字母为大写会出错 可以用以下方法

    package open_exe; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.u ...

  5. FastJson生成json时,显示Null属性

    FastJson生成json时,默认不会输出null字段. 移动端,有时候,需要后端提供完整的字段说明. Map < String , Object > jsonMap = new Has ...

  6. Laravel输出JSON时设定输出字段的几种情况总结

    1.如果输出json的时候需要屏蔽某些字段,或则想自定义显示的字段: 1.model里面设置 protected $hidden = ['password'];//要屏蔽的字段 2.model里面设置 ...

  7. 当使用servlet输出json时,浏览器端jquery的ajax遇到parse error的问题

    在使用jquery的ajax进行请求发送并由服务端的servlet返回json格式的数据内容时,假设输出内容没有正确设置,会遇到client浏览器报告parse error的问题.这个问题的解决仅仅须 ...

  8. json转bean对象

    一下为个人收藏,以便下次使用. 前端传的json格式为: [{"suppliercode":"gylhld_gycqlt3_gycqlt1","pro ...

  9. fastjson转换对象,属性首字母大小写的问题

    请求Json数据的时候,传递过去的String类型转Json数据的时候经常有首字母是大写的情况,例如"LoginAccount":"02:00:00:62:73:74&q ...

随机推荐

  1. Java 获取字符串指定下标位置的值 charAt()

    Java手册 charAt public char charAt(int index) 返回指定索引处的 char 值.索引范围为从 0 到 length() - 1.序列的第一个 char 值位于索 ...

  2. 二、jdk命令之javah命令(C Header and Stub File Generator)

    目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...

  3. 怎么才知道你在使用的是不是中国电信CN2的线路

    原文:http://www.juzhenyun.org/helpview_66.html 首先你能从和电信的合同上确认是否为CN2线路 目前CN2的线路多为商业用途.公司用户申请中国电信的Intern ...

  4. jvectormap地图开发和制作任意国家地图

    jvectormap官网上提供了世界地图和很多国家的地图,但不是所有国家的地图都有,比如沙特阿拉伯的国家地图就没有,怎么办呢? 在http://www.amcharts.com/svg-maps/上下 ...

  5. ThreadCachedInt

    folly/ThreadCachedInt.h High-performance atomic increment using thread caching. folly/ThreadCachedIn ...

  6. centos软件安装

    首先安装epel,然后再安装yum加速 #centos7下执行以下命令 wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7. ...

  7. Linux nohup和&的功效

    nohup和&究竟有啥区别?不少同学进行了回复,但并不是所有同学都理解得全对,今天把自己挖的坑自己填了. 测试代码如下: 是一个输出hello与循环轮数的死循环程序,每输出一行就休眠1秒. 使 ...

  8. django-DIL模板自定义过滤器,自定义标签,自定义包含标签

    自定义过滤器 DTL模板语言生来只是为了方便的展示信息,所以与编程语言相比显得有点薄弱,有时候不能满足我们的需求.因此django提供了一个接口,让开发者能自定义标签和过滤器. 首先,你需要添加一个t ...

  9. 关于json_encode转义斜杠的问题

    加上参数  JSON_UNESCAPED_SLASHES即可 echo json_encode($data,JSON_UNESCAPED_SLASHES);

  10. 方便好使的java.util.Properties类

    今天偶然碰到这个类,发现jdk中这些平时不大用到的类还挺好玩儿的,用起来也特别实在方便,随便写点记录下. java.util.Properties是对properties这类配置文件的映射.支持key ...