大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
在开过发过程中,遇到将一个实体类转换成json对象,转义后得到的字符串中,存在大小写转义错误。
在测试中发现:
1、字段名称都大写(AAA),不会有问题。
2、字段名称都小写(aaa),不会有问题。
3、字段名称首字母大写,其余大小写都存在(AaBb),得到的后的是:aaBb;
因为基于分离开发,要严格按照规定的协议去做,所以这样是不被允许的。
解决方法:
引入jar包:jackson-databind-2.8.8.jar,jackson-annotations-2.8.8.jar, jar文件自行下载
干货代码实体类:
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
public class ProcessInstruct {
//设备名称
//这个地方使用JsonProperty 自定义字段名称大小写格式
@JsonProperty(value=”DevID”)
private String DevID;
//信息类型
@JsonProperty(value=”BID”)
private String BID;
//控制命令ID
@JsonProperty(value=”CID”)
private String CID;
//参数列表
@JsonProperty(value=”paramList”)
private ParamList paramList;
//@JsonIgnore
public String getDevID() {
return DevID;
}
@JsonIgnore
public void setDevID(String DevID) {
this.DevID = DevID;
}
@JsonIgnore
public String getBID() {
return BID;
}
@JsonIgnore
public void setBID(String bID) {
BID = bID;
}
@JsonIgnore
public String getCID() {
return CID;
}
@JsonIgnore
public void setCID(String cID) {
CID = cID;
}
@JsonIgnore
public ParamList getParamList() {
return paramList;
}
@JsonIgnore
public void setParamList(ParamList paramList) {
this.paramList = paramList;
}
}
测试方法:
public static void main(String[] args) {
ProcessInstruct pi =new ProcessInstruct();
//省略传值
ObjectMapper mapper = new ObjectMapper();
String str = null;
try {
str = mapper.writeValueAsString(pi);
} catch (JsonProcessingException e1) {
e1.printStackTrace();
}
System.err.println(str);
}
输出结果:
{“DevID”:”97″,”BID”:”61441″,”CID”:”16897″,”paramList”:{“Count”:2,”Params”:[“1092″,”666”]}}
网上还有很多的其他方法,没有来的急测试,这个方法也许不是很好,希望大家给出意见和更好地方法。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/190955.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...