FastJson框架,真的很好用。如下记录,转化的操做方法。java

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

//解析json

implementation 'com.alibaba:fastjson:1.2.56'

2.具体操做:app

实体类或集合转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都是首字母大写。gradle

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

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

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

代码示例:开发

//自定义对象get

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);

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐