当前位置: 首页 > news >正文

水泥制品做阿里巴巴还是网站好wordpress菜鸟教程

水泥制品做阿里巴巴还是网站好,wordpress菜鸟教程,易优cms收费吗,大连网络营销咨询服务目录 环境#xff1a; 1.驼峰转下划线配置 1.1单个字段命名转化使用JsonProperty注解 1.2单个类进行命名转化 3.全局命名策略配置 2. 序列化以及反序列化 2.1序列化 2.2反序列化 3.自定义序列化与反序列化 在Web开发中#xff0c;JSON#xff08;JavaScript Obje…目录 环境 1.驼峰转下划线配置  1.1单个字段命名转化使用JsonProperty注解 1.2单个类进行命名转化 3.全局命名策略配置 2. 序列化以及反序列化 2.1序列化 2.2反序列化 3.自定义序列化与反序列化  在Web开发中JSONJavaScript Object Notation成为了一种广泛使用的前后端、服务端与服务端的交互的数据格式主要用于前后端数据传输和存储。 1.Java是一种面向对象编程语言而JSON是一种键值对格式的数据因此在Java中需要将Java对象转换为JSON字符串或者将JSON字符串转换为Java对象。这个过程就是JSON的序列化和反序列化。 2.在生产过程中由于命名规范的问题前后端交互往往使用的是下划线的方式进行出入参而java项目中的实体类中的参数命名规则一般是小驼峰命名所以在前后端交互过程中需要进行下划线转驼峰的配置。 对于Java中的JSON序列化和反序列化有很多开源库可供选择其中Jackson库是最受欢迎的之一。Jackson库提供了丰富的功能可以实现灵活的JSON序列化和反序列化而且性能非常出色。 环境 jdk1.8 springboot版本2.7.15 spingboot依赖中已经集成了Jackson相关依赖 1.驼峰转下划线配置  jackson对驼峰转下划线配置有3个作用域的配置分别是单个字段单个类以及全局配置。 1.1单个字段命名转化使用JsonProperty注解 首先我们创建一个UInfo实体类 package com.iterge.iterge_pre.entity;import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data;/*** author liuph* date 2023/9/22 11:07:12*/ Data public class UInfo {JsonProperty(first_name)private String firstName;private String lastName;private Integer age; }接口返回测试 package com.iterge.iterge_pre.controller;import com.iterge.iterge_pre.entity.TUser; import com.iterge.iterge_pre.entity.UInfo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** p* 前端控制器* /p** author iterge* since 2023-09-05*/ RestController RequestMapping(/tUser)public class TUserController {GetMapping(test)public UInfo get(){UInfo uInfo new UInfo();uInfo.setFirstName(san);uInfo.setLastName(zhang);uInfo.setAge(20);return uInfo;} }结果 1.2单个类进行命名转化 使用JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)注解 修改UInfo类 package com.iterge.iterge_pre.entity;import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.Data;/*** author liuph* date 2023/9/22 11:07:12*/ Data JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class UInfo {//JsonProperty(first_name)private String firstName;private String lastName;private Integer age; }package com.iterge.iterge_pre.entity;import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable;/*** p* * /p** author iterge* since 2023-09-05*/ TableName(user_info) public class UserInfo implements Serializable {private static final long serialVersionUID 1L;TableId(value id, type IdType.AUTO)private Long id;private String firstName;private String age;public Long getId() {return id;}public void setId(Long id) {this.id id;}public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName firstName;}public String getAge() {return age;}public void setAge(String age) {this.age age;}Overridepublic String toString() {return UserInfo{ id id , firstName firstName , age age };} }接口测试结果 上面两图可以观察到UInfo输出是下划线而UserInfo还是驼峰。 3.全局命名策略配置 全局命名策略配置5种需要在yml文件中设置spring.jackson.property-naming-strategy: SNAKE_CASE 命名策略描述 策略例子备注LOWER_CAMEL_CASEfirstName默认策略 小驼峰命名UPPER_CAMEL_CASEFirstName大驼峰命名KEBAB_CASEfirst-name短横线命名LOWER_CASEfirstname全小写命名SNAKE_CASEfirst_name下划线命名 配置 spring:profiles:active: devjackson:property-naming-strategy: SNAKE_CASE mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl#mapper-locations: classpath:mapper/*Mapper.xml修改UInfo类注释JsonNaming package com.iterge.iterge_pre.entity;import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import lombok.Data;/*** author liuph* date 2023/9/22 11:07:12*/ Data //JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class UInfo {//JsonProperty(first_name)private String firstName;private String lastName;private Integer age; }测试结果 由图可知两个接口输出都改成了“_”下划线的格式输出 2. 序列化以及反序列化 2.1序列化 将Java对象转换为JSON字符串最基本的方法就是使用​​ObjectMapper​​​类的​​writeValueAsString​​方法。这个方法接收一个Java对象作为参数返回一个JSON字符串。 序列化和反序列化也可以使用阿里开源的fastjson使用教程fastjson详解 package com.iterge.iterge_pre.mapper;import com.fasterxml.jackson.databind.ObjectMapper; import com.iterge.iterge_pre.entity.UInfo; import lombok.SneakyThrows; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;/*** author liuph* date 2023/9/22 11:09:15*/ SpringBootTest public class JacksonTest {ObjectMapper mapper new ObjectMapper();SneakyThrowsTestpublic void test1(){UInfo uInfo new UInfo();uInfo.setFirstName(san);uInfo.setLastName(zhang);uInfo.setAge(20);System.out.println(mapper.writeValueAsString(uInfo));} }2.2反序列化 将JSON字符串转换为Java对象的基本方法是使用​​ObjectMapper​​​类的​​readValue​​方法。这个方法接收两个参数一个JSON字符串和一个Java类它会将JSON字符串反序列化为指定的Java类对象。  package com.iterge.iterge_pre.mapper;import com.fasterxml.jackson.databind.ObjectMapper; import com.iterge.iterge_pre.entity.UInfo; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest;/*** author liuph* date 2023/9/22 11:09:15*/ SpringBootTest Slf4j public class JacksonTest {ObjectMapper mapper new ObjectMapper();SneakyThrowsTestpublic void test1(){UInfo uInfo new UInfo();uInfo.setFirstName(san);uInfo.setLastName(zhang);uInfo.setAge(20);System.out.println(mapper.writeValueAsString(uInfo));}SneakyThrowsTestpublic void test2(){String str {\firstName\:\san\,\lastName\:\zhang\,\age\:20};UInfo uInfo mapper.readValue(str, UInfo.class);log.info(first name:{},uInfo.getFirstName());} }3.自定义序列化与反序列化  在某些情况下Jackson库提供的默认序列化和反序列化行为可能无法满足需求需要自定义序列化和反序列化规则。例如在序列化​​UInfo对象时我们希望将年龄按字符串类型序列化而不是默认的整型类型。 新建序列化方法IntToStringSerializer package com.iterge.iterge_pre.config;import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider;import java.io.IOException;/*** author liuph* date 2023/9/22 14:17:07*/public class IntToStringSerializer extends JsonSerializerInteger {Overridepublic void serialize(Integer integer, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {jsonGenerator.writeString(integer.toString());} }对UInfo对象age字段添加注解JsonSerialize(using IntToStringSerializer.class) package com.iterge.iterge_pre.entity;import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.iterge.iterge_pre.config.IntToStringSerializer; import lombok.Data;/*** author liuph* date 2023/9/22 11:07:12*/ Data //JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class UInfo {//JsonProperty(first_name)private String firstName;private String lastName;JsonSerialize(using IntToStringSerializer.class)private Integer age; }测试
http://www.pierceye.com/news/346371/

相关文章:

  • 做贸易网站科技型中小企业服务平台登录
  • 网站怎么接广告赚钱net创建网站之后怎么做
  • 做网站如何让盈利wordpress链接样式表
  • 网站建设与管理计划谷歌浏览器官网下载手机版
  • 做请帖的网站上海阳性增多
  • 有回定ip怎么做网站青岛建设集团招聘信息网站
  • 淘宝内部卷网站怎么做智慧团建网站登录忘记密码
  • 网站建设前十名建站系统cms
  • 第三方网站开发的商家厦门广告公司网站建设
  • 网站建设基础条件临猗网站制作
  • 建设博客网站步骤常州网站建设百科
  • 门户网站 管理系统wordpress 微信图标
  • 广元网站建设广元莱芜论坛二手车
  • 山东省建设工程质量监督网站广州软件合作中心
  • 郑州网站建设怎么样通州建设局网站
  • 免费网站建设福州怎么修改网站主页
  • 深圳企业建站设计公司wordpress不显示样式
  • 外贸网站商城广东省建设协会网站
  • 杭州制作企业公司网站wordpress数据库添加用户
  • 主域名进入网站广告标识标牌制作厂家
  • 网站建设基础流程摘要专题网站建设策划
  • 滁州网站建设电话网站建设与网站优化
  • 慈溪做网站公司哪家好淘宝商城的网站建设
  • 安徽建设厅网站怎么打不开太原网络搭建
  • idea 网站开发最好的免费推广平台
  • 专业排名优化网站怎么建网站教程视频app
  • 全国八大员报名官方网站支付宝小程序开发工具
  • 怎么查看vps网站服务器时间中国建设会计协会网站
  • 门户网站上的广告怎么做深圳服装网站建设
  • 公司网站上线的通知抚州营销型网站建设