android首字母小写,Android之FastJSon基本使用,属性首字母大小写的问题
FastJson框架,真的很好用。如下记录,转化的操做方法。java1.配置:在build.gradle(Module:app)中增添引用json//解析jsonimplementation 'com.alibaba:fastjson:1.2.56'2.具体操做:app实体类或集合转JSON串String jsonString = JSONObject.toJSONString(实体类);JSON
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);
更多推荐
所有评论(0)