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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 内核态和用户态的区别[通俗易懂]

    内核态和用户态的区别[通俗易懂]当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序…

    2022年9月17日
    0
  • XML 在SQLServer中的使用

    XML 在SQLServer中的使用

    2021年11月25日
    45
  • SpringBoot整合RabbitMQ之 典型应用场景实战一「建议收藏」

    SpringBoot整合RabbitMQ之 典型应用场景实战一「建议收藏」实战前言RabbitMQ作为目前应用相当广泛的消息中间件,在企业级应用、微服务应用中充当着重要的角色。特别是在一些典型的应用场景以及业务模块中具有重要的作用,比如业务服务模块解耦、异步通信、高并发限流、超时业务、数据延迟处理等。其中课程的学习链接地址:https://edu.csdn.net/course/detail/9314RabbitMQ官网拜读首先,让我们先拜读Ra…

    2022年5月14日
    31
  • VS中时间控件的使用[通俗易懂]

    VS中时间控件的使用[通俗易懂]使用方法:1.下载时间控件 My97DatePickerBeta.2.在VS中新建项目,添加web窗体。3.将下载好的文件导入你的项目文件中,然后添加如下代码: <scriptsrc="Content/My97DatePickerBeta/WdatePicker.js"type="text/javascript"></script>//引号内为Wdat…

    2022年5月24日
    128
  • 爸妈老了

    爸妈老了爸妈老了

    2022年4月23日
    38
  • bind函数失败返回10049 的解决方案[通俗易懂]

    bind函数失败返回10049 的解决方案[通俗易懂]一般都是ip地址错误,不是局域网内的ip都能随便bind的,即使这个ip没人使用也不行。bind函数必须绑定本机ip地址,如果本机有多个ip地址,那么这些地址都可以bind,如果只有一个网卡和ip,那么就只能bind这个唯一的ip地址,或者127.0.0.1。或者直接用INADDR_ANY自动bind本机ip。…

    2022年10月1日
    0

发表回复

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

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