SpringBoot返回對象時,如何將Long類型轉(zhuǎn)換為String
SpringBoot返回對象將Long類型轉(zhuǎn)換為String
1.自定義ObjectMapper
/** * 返回Long轉(zhuǎn)換為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
設(shè)置給HttpMessageConverter
/** * @author Jingly */ @Configuration public class WebConfig implements WebMvcConfigurer { @Autowired private HttpMessageConverters httpMessageConverters; /** * MappingJackson2HttpMessageConverter 實(shí)現(xiàn)了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類型轉(zhuǎn)換為String類型的方法及區(qū)別
1、Long.ValueOf ("String") 返回 Long 包裝類型數(shù)據(jù)
- 包裝類型:Byte,Integer,Short,Long,Boolean,Character,Float,Double 等。
2、Long.parseLong ("String") 返回 long 基本數(shù)據(jù)類型
- 基本數(shù)據(jù)類型:byte,int,short,long,boolean,char,float,double 等。
注意事項(xiàng)
1、字符串內(nèi)不能包含除數(shù)字之外的字符,不然會報錯,java.lang.NumberFormatException
2、字符串長度要限制,不然也會報錯。
- 比如:String s ="1234567899876543210000", 超過 19 位,就會報錯,java.lang.NumberFormatException.
- String s = "12345698798765432100", 不超過就不會包錯。
- 原因是 Long 類型的最大值位 Long.MAX_VALUE = 9223372036854775807, 大于錯,最小值位 Long.MIN_VALUE = -9223372036854775808, 小于這個值也會報錯。
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
多模塊項(xiàng)目引入SpringSecurity后一直報404的解決方案
這篇文章主要介紹了多模塊項(xiàng)目引入SpringSecurity后一直報404的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Java 高并發(fā)五:JDK并發(fā)包1詳細(xì)介紹
本文主要介紹 Java高并發(fā)JDK并發(fā)包1的資料,這里對1.各種同步控制工具的使用 2.并發(fā)容器及典型源碼分析,有需要的小伙伴可以參考下2016-09-09詳解Java基礎(chǔ)篇--面向?qū)ο?(構(gòu)造方法,static、this關(guān)鍵字)
這篇文章主要介紹了Java基礎(chǔ)篇--面向?qū)ο?(構(gòu)造方法,static、this關(guān)鍵字),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Java中String的JdbcTemplate連接SQLServer數(shù)據(jù)庫的方法
這篇文章主要介紹了Java中String的JdbcTemplate連接SQLServer數(shù)據(jù)庫的方法,在研發(fā)過程中我們需要與其他系統(tǒng)對接的場景,連接SQLServer拉取數(shù)據(jù),所以就用jdbc連接數(shù)據(jù)庫的方式連接外部數(shù)據(jù)源,需要的朋友可以參考下2021-10-10mybatis if test 不為空字符串或null的解決
這篇文章主要介紹了mybatis if test 不為空字符串或null的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11Springboot啟動同時創(chuàng)建數(shù)據(jù)庫和表實(shí)現(xiàn)方法
這篇文章主要介紹了Springboot啟動同時創(chuàng)建數(shù)據(jù)庫和表,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2023-01-01