FastJson框架,真的很好用。以下记录,转化的操作方法。

1.配置:在build.gradle(Module:app)中增添引用

//解析jsonimplementation 'com.alibaba:fastjson:1.2.60'

注:1.2.60之前有重大漏洞:包含"\x"转义符出现OOM。 

 2.具体操作:

  • 实体类或集合转JSON串
String jsonString = JSONObject.toJSONString(实体类);
  • JSON串转JSONObject
JSONObject jsonObject = JSONObject.parseObject(jsonString);
  • JSON串转实体类
实体类 javaBean = JSON.parseObject(json, 实体类.class);
  • JSON串转带泛型的List的集合
List<实体类或其他泛型> list = JSON.parseObject(json, new TypeReference>(){});

 

3.遇到问题:(属性首字母大小写的问题

场景:硬件的同事需要安卓端开发一个APP,进行数据传输,传输格式为Json。我决定使用FastJson进行对自定义NFC信息类转换,key-value都是对方定义的,因此其中key都是首字母大写。

手机使用NFC功能读写都没问题,但是硬件同事发现,写入的数据key的首字母都变成小写了。

原来:转换成Json的时候FastJson的源码会做一段操作,fastjson内部做Bean转换时会使用到 com.alibaba.fastjson.util.TypeUtils,在类加载的时候会去读取环境变量 fastjson.compatibleWithJavaBean。 把对象里面大写属性转换成了小写。

解决方案也有很多,网上查了一下,最好的方法还是在该属性的get方法上添加@JSONField(name = "Name")

代码示例:

//自定义对象

public class NfcBean implements Serializable {    private int State;     @JSONField(name = "State")    public int getState() {        return State;    }     public void setState(int state) {        State = state;    }}


 转换代码:

String nfcStr = JSONObject.toJSONString(nfcBean);

 

更多相关文章

  1. Android(安卓)package属性、package name和Application ID三者的
  2. Animation & Property Animation 使用
  3. java.lang.RuntimeException: Binary XML file line #52: You mu
  4. android 抽屉 效果
  5. Fragment 模仿QQ页面之间的转换
  6. 界面中显示NumberPicker,修改字体大小
  7. android属性动画 —— ValueAnimator和ObjectAnimator的例子
  8. JAVA-阴历阳历转换
  9. Android(安卓)按钮点击事件

随机推荐

  1. Android(安卓)Wi-Fi EAP-SIM代码解析
  2. Android(安卓)SDK更新 Connection to htt
  3. Android(安卓)APK权限大全
  4. Android自定义样式style.xml
  5. android 让Activity单例运行
  6. android通过http上传图片
  7. android的ViewFlipper
  8. Android(安卓)NDK Overview ---- Android
  9. Android(安卓)HandlerThread使用
  10. Android(安卓)Studio对话框登录。。。