java中定义json格式数据类型_java解析字符串

java中定义json格式数据类型_java解析字符串在开过发过程中,遇到将一个实体类转换成json对象,转义后得到的字符串中,存在大小写转义错误。在测试中发现:1、字段名称都大写(AAA),不会有问题。2、字段名称都小写(aaa),不会有问题。3、字段名称首字母大写,其余大小写都存在(AaBb),得到的后的是:aaBb;因为基于分离开发,要严格按照规定的协议去做,所以这样是不被允许的。解决方法:引入jar包:jackson-databind-2.8…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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”]}}

网上还有很多的其他方法,没有来的急测试,这个方法也许不是很好,希望大家给出意见和更好地方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190955.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 卸载软件三种方式「建议收藏」

    linux 卸载软件三种方式「建议收藏」1.我们来卸载用yum安装的软件:yumremove软件名字;2.如果是用rpm包安装的软件呢,则使用如图命令进行卸载;rpm-e软件名;3.如果是用tar包安装的软件呢,则使用makeuninstall软件名称来卸载,直接删除也可以的;…

    2025年10月14日
    1
  • java学习——Java 动态代理机制分析

    越学越觉得自己不懂的越多!java的动态代理学习资料整理:Java 动态代理机制分析及扩展,第 1 部分: https://www.ibm.com/developerworks/cn/java/j-lo-proxy1/Java 动态代理作用是什么? https://www.zhihu.com/question/20794107Java动态代理机制详解(JDK 和CGLIB,Javassist,A

    2022年2月26日
    36
  • LeetCode报错:AddressSanitizer:DEADLYSIGNAL详细分析与解决

    LeetCode报错:AddressSanitizer:DEADLYSIGNAL详细分析与解决LeetCode报错:AddressSanitizer:DEADLYSIGNAL详细分析与解决问题描述问题分析实例分析更多总结见:C刷题:LeetCode刷题踩坑常见BUG总结问题描述报错:AddressSanitizer:DEADLYSIGNAL,详细如下===42====ERROR:AddressSanitizer:SEGVonunknownaddressxx.ThesignaliscausedbyaREADmemoryaccess.问题分析一般可能主要有

    2025年8月5日
    3
  • c# dynamic用法_dynamic_cast详解

    c# dynamic用法_dynamic_cast详解dynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。比如,即使你

    2022年8月4日
    6
  • SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法

    SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法以前一直使用SQLServer2000,现在跟潮流都这么紧,而且制定要求使用SQLServer2005,就在现在的项目中使用它了。 对于SQLServer2005,有几个地方是要注意的,比方在还原数据库时,不像2000里边将数据库和文件区分的很细,统一均为文件,这就使还原的数据库文件制定为.bak。那么想还原2000的数据库(备份数据库文件,无后缀名的),就需要自己手工选择。

    2022年5月26日
    26
  • tmux 如何自定义背景颜色 | How does the tmux color palette work?

    tmux 如何自定义背景颜色 | How does the tmux color palette work?坑1:256colorsupportforvimbackgroundintmuxhttps://superuser.com/questions/399296/256-color-support-for-vim-background-in-tmux原因Fromthelookofyour.bashrcand.profile,theshellsinsidetmuxareoverridingthe‘default-terminal’settinginyour

    2022年6月21日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号