JSON.toJSONString 首字母不小写
JSON.toJSONString 首字母不小写
1、在字段上加注解@JSONField
package com.cjh.wechatmp.po;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import lombok.NoArgsConstructor;
@NoArgsConstructor
@Data
public class InMessageText {
@JSONField(name = "ToUserName")
private String ToUserName;
@JSONField(name = "FromUserName")
private String FromUserName;
private String CreateTime;
private String MsgType;
private String Content;
private String MsgId;
}
优点:少量的话简单方便
缺点:入侵性强,懒得每个加
2、自定义配置
优点: 逼格高
缺点:并不是忽略不转,而是转了小写,再转回来大写
package com.wechat.util;
import java.util.Map;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.JavaIdentifierTransformer;
import net.sf.json.util.PropertySetStrategy;
public class JsonUtil {
public static Object toBean(JSONObject jsonObject, Class rootClass,
String[] ignoreLowercase, Map<String, Class> childClass) {
JsonConfig config = new JsonConfig();
//转换对象
config.setRootClass(rootClass);
//首字母小写
config.setJavaIdentifierTransformer(new JavaIdentifierTransformer() {
@Override
public String transformToJavaIdentifier(String str) {
if (ignoreLowercase.length > 0) {
for (String item : ignoreLowercase) {
if (str.indexOf(item) == 0) {
return str;
}
}
}
char[] chars = str.toCharArray();
chars[0] = Character.toLowerCase(chars[0]);
return new String(chars);
}
});
//对象里没有的属性忽略
config.setPropertySetStrategy(new PropertySetStrategy() {
@Override
public void setProperty(Object o, String s, Object o1) throws JSONException {
try {
PropertySetStrategy.DEFAULT.setProperty(o, s, o1);
} catch (JSONException e) {
}
}
});
//自定义的list声明
if (childClass != null) {
config.setClassMap(childClass);
}
return JSONObject.toBean(jsonObject, config);
}
}
3、用Gson代替(推荐)
优点:简单方便
缺点:要添加依赖,不过不会和之前的冲突哦
<!-- gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
效果:
InMessageText(ToUserName=toUser, FromUserName=fromUser, CreateTime=1348831860, MsgType=text, Content=this is a test, MsgId=1234567890123456)
<xml><Content><![CDATA[this is a test]]></Content><CreateTime><![CDATA[1348831860]]></CreateTime><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><MsgType><![CDATA[text]]></MsgType><MsgId><![CDATA[1234567890123456]]></MsgId></xml>
Gson--->{"ToUserName":"toUser","FromUserName":"fromUser","CreateTime":"1348831860","MsgType":"text","Content":"this is a test","MsgId":"1234567890123456"}
JSONObject--->{"content":"this is a test","createTime":"1348831860","fromUserName":"fromUser","msgId":"1234567890123456","msgType":"text","toUserName":"toUser"}
相关文章
- 云桌面服务器如何搭建?个人可以搭建云服务器吗?
- 火山中文编程 -- 判断循环
- 云桌面服务器有什么作用?云服务器的功能有哪些?
- 《创新改变行业——释放域名生态的力量》电子版地址
- 云桌面服务器cpu主频一般是多少?云桌面可以增加算力吗?
- 每日一题---16. 最接近的三数之和[力扣][Go]
- 云桌面需要什么服务器?云桌面服务器具有哪些特点?
- 云桌面怎么看自己连接的服务器?云桌面可以看到哪些信息?
- 用云桌面需要搭建一个服务器吗?没有云服务器云桌面能用吗?
- Netty(二)之整合Marshalling传输实体类
- 通过堡垒机可以重启服务器吗 堡垒机和服务器怎么连接的
- 每日一题---19. 删除链表的倒数第 N 个结点[力扣][Go]
- 堡垒机服务器什么意思 堡垒机服务器安装之后有什么好处
- 每日一题---20. 有效的括号[力扣][Go]
- 怎么通过堡垒机进行服务器重启 如何登录到堡垒机上
- 如何将一台云服务器做成堡垒机 搭建堡垒机需要多长时间
- 安卓逆向 -- IDA动态调试
- 怎么弄ai语音合成呢?ai语音合成的语音怎么下载?
- C语言进阶——字符串&&内存函数(下)
- 怎么样语音合成呢?语音合成效果好吗?