SpringBoot返回对象时,如何将Long类型转换为String

目录
  • SpringBoot返回对象将Long类型转换为String
    • 1.自定义ObjectMapper
    • 2.把MappingJackson2HttpMessageConverter
    • 3.定义返回的VO类
    • 4.返回的Long类型id为String类型
  • Long类型转换为String类型的方法及区别
    • 注意事项

SpringBoot返回对象将Long类型转换为String

1.自定义ObjectMapper

/**
 * 返回Long转换为String
 * @author Jingly
 */
public class JacksonMapper extends ObjectMapper {
  public JacksonMapper() {
    super();
    this.configure(JsonGenerator.Feature.WRITE_BIGDECIMAL_AS_PLAIN, true);
    this.configure(JsonGenerator.Feature.IGNORE_UNKNOWN, true);
    this.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    this.setSerializationInclusion(Include.NON_NULL);
    SimpleModule simpleModule = new SimpleModule();
    simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
    simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
    simpleModule.addSerializer(long.class, ToStringSerializer.instance);
    registerModule(simpleModule);
  }
}

2.把MappingJackson2HttpMessageConverter

设置给HttpMessageConverter

/**
 * @author Jingly
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {
  @Autowired
  private HttpMessageConverters httpMessageConverters;
  /**
   * MappingJackson2HttpMessageConverter 实现了HttpMessageConverter 接口,
   * httpMessageConverters.getConverters() 返回的对象里包含了MappingJackson2HttpMessageConverter
   * @return
   */
  @Bean
  public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {
    return new MappingJackson2HttpMessageConverter(new JacksonMapper());
  }
  @Override
  public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.addAll(httpMessageConverters.getConverters());
  }
}

3.定义返回的VO类

@Data
public class TestVO {
  private Long id;
}

4.返回的Long类型id为String类型

{
    "id": "123456"
}

Long类型转换为String类型的方法及区别

1、Long.ValueOf ("String") 返回 Long 包装类型数据

  • 包装类型:Byte,Integer,Short,Long,Boolean,Character,Float,Double 等。

2、Long.parseLong ("String") 返回 long 基本数据类型

  • 基本数据类型:byte,int,short,long,boolean,char,float,double 等。

注意事项

1、字符串内不能包含除数字之外的字符,不然会报错,java.lang.NumberFormatException

2、字符串长度要限制,不然也会报错。

  • 比如:String s ="1234567899876543210000", 超过 19 位,就会报错,java.lang.NumberFormatException.
  • String s = "12345698798765432100", 不超过就不会包错。
  • 原因是 Long 类型的最大值位 Long.MAX_VALUE = 9223372036854775807, 大于错,最小值位 Long.MIN_VALUE = -9223372036854775808, 小于这个值也会报错。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java long 转成 String的实现

    第一种: String s = String.valueOf(long) 第二种: String s = Long.toString(long) 补充知识:解决:Java 把Long转换成日期再转换成String类型 1.把long类型数值转成日期类型 2.使用SimpleDateFormat 转换成具体格式的字符串类型 贴代码 import java.text.SimpleDateFormat; import java.util.Date; public class TestTime { pu

  • 使用String类型小数值转换为Long类型

    目录 String类型小数值转为Long类型 解决方案如下 String类型转int,转long 转int 转long String类型小数值转为Long类型 数值分为小数和整数,当传入的类型为String,需要获取的类型为Long,这时候直接通过Long.valueOf()可以实现,但是当传入的String类型是小数值得时候(如传入的是金额数值:"29.90",注意:金额数值经常进行乘以100后再往下执行业务逻辑:)就会出现 异常java.lang.NumberFormatExcep

  • SpringBoot全局配置long转String丢失精度的问题解决

    目录 第一种方式 第二种方式 第三种方式 第四种方式(缺点:将所有的数字类型都会转为字符串) web项目中,Java后端传过来的Long/long类型,前端JS接收会丢失精度. 本文推荐第三.第四种方式 第一种方式 简单粗暴,将所有的Lang类型,改为String,数据库改成varchar类型: 第二种方式 自己建个配置类 extends WebMvcConfigurerAdapter 已经被弃用,直接实现WebMvcConfigurer该接口就行了 @EnableWebMvc @Configu

  • SpringBoot返回对象时,如何将Long类型转换为String

    目录 SpringBoot返回对象将Long类型转换为String 1.自定义ObjectMapper 2.把MappingJackson2HttpMessageConverter 3.定义返回的VO类 4.返回的Long类型id为String类型 Long类型转换为String类型的方法及区别 注意事项 SpringBoot返回对象将Long类型转换为String 1.自定义ObjectMapper /** * 返回Long转换为String * @author Jingly */ publi

  • 解决feignClient调用时获取返回对象类型匹配的问题

    feignClient调用时获取返回对象类型匹配 feignClient是springCloud体系中重要的一个组件,用于微服务之间的相互调用,底层为httpClient,在之前的应用中,我一直以为A服务提供的方法返回类型为对象的话,那么调用A服务的B服务必须也用字段类型以及命名完全相同的对象来接收,为此我验证了一下,发现不是必须用完全相同的对象来接收,比如,可以用map<String,Object>或者Object来接收,然后解析. 当然,复杂对象我还是推荐用一个完全相同的对象来接收. 下面

  • SpringBoot返回Json对象报错(返回对象为空{})

    目录 1 需求描述 2 代码展示 3 原因分析 4 解决方案 5 效果展示 6 结束语 1 需求描述 我们现在要干一个什么事情呢,我们要在浏览器输入一个请求地址,然后我们的后端就给我返回一个User对象即可,并且我希望以Json的格式返回.这个需求很明确,我们先直观的展示一下效果.发送请求: 接受结果: 2 代码展示 行了,明确了需求我们开始整活儿.首先我们老规矩还是先展示一下目录结构(其中标红的文件使我们今天要用到的): 接下来是具体的文件内容首先呢我们展示一下User.java文件 pack

  • Springboot JPA如何使用distinct返回对象

    目录 JPA如何使用distinct返回对象 JPA自定义返回对象 方法一 方法二 方法三 方法四 JPA如何使用distinct返回对象 package com.frank.jpaBatchSave.repository; import com.frank.jpaBatchSave.entity.Person; import org.springframework.data.jpa.repository.Query; import org.springframework.data.reposi

  • SpringBoot自定义对象参数实现自动类型转换与格式化

    目录 序章 一.实体类 Bean 二.前端表单index.html 三.Controller 类 四.运行结果截图 序章 问题提出一: 当我们用表单获取一个 Person 对象的所有属性值时, SpringBoot 是否可以直接根据这些属性值将其转换为 Person 对象 回答: 当然可以,SpringBoot 通过自定义对象参数,可以实现自动类型转换与格式化,并可以级联封装(一个对象拥有另一个对象作为属性时,也可以封装). 一.实体类 Bean person类 注: 构造方法一定要写全,无参数

  • ASP.NET Core MVC如何实现运行时动态定义Controller类型

    昨天有个朋友在微信上问我一个问题:他希望通过动态脚本的形式实现对ASP.NET Core MVC应用的扩展,比如在程序运行过程中上传一段C#脚本将其中定义的Controller类型注册到应用中,问我是否有好解决方案.我当时在外边,回复不太方便,所以只给他说了两个接口/类型:IActionDescriptorProvider和ApplicationPartManager.这是一个挺有意思的问题,所以回家后通过两种方案实现了这个需求.源代码从这里下载. 一.实现的效果 我们先来看看实现的效果.如下所

  • Mybatis查询语句返回对象和泛型集合的操作

    Mybatis查询语句返回对象和泛型集合 EmpMapper映射接口: package cn.et.mybatis.lesson03; import java.util.List; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.Results; import org.apache.ibatis.annotations.Select; public interface EmpMap

  • SpringBoot返回统一的JSON标准格式实现步骤

    期望返回的JSON格式如下 { "code": 200, "msg": "操作成功", "data": "hello jenkins" } 实现步骤如下 1.自定义状态码枚举类. @AllArgsConstructor @Getter public enum StatusCodeEnum { SC200(200, "操作成功"), SC999(999, "操作失败")

  • SpringBoot使用MyBatis时的几种传参规范示例

    目录 1.单个简单参数传递 2.匿名参数顺序传递 3.使用@Param注解传递 4.使用Map传递参数 5.使用JavaBean(POJO)传递 6.使用List.Array.Set传递 使用Mybatis作为持久层框架时,对于数据库的增删改查等操作都需要参数的传递,这里学习记录一下MyBatis中可用的参数传递方式. 1. 单个简单参数传递 使用 MyBatis 传递单个参数时比较简单,形式如#{a},#{b},#{param1}等都可以在 MyBatis 中获取到唯一参数,但是参数名尽量和入

  • AngularJS directive返回对象属性详解

    写在前面:由于directive部分是angularjs中的重中之重,所以会分多篇章进行讲解.本章主要讲解directive返回对象中比较简单的属性 angularjs中使用.directive()来定义指令,该方法接收两个参数:name(指令的名字).factory_function(该函数定义指令的全部行为,返回一个对象) 栗子: //index.js angular.module('myApp',[]); myApp.directive('myDirective',function() {

随机推荐