最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java使用JSON實(shí)現(xiàn)處理中文亂碼和Date格式

 更新時(shí)間:2023年06月25日 09:18:01   作者:小花皮豬  
這篇文章主要為大家詳細(xì)介紹了Java如何在項(xiàng)目中使用JSON實(shí)現(xiàn)處理中文亂碼和Date格式的功能,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下

JSON中文亂碼

如果出現(xiàn)亂碼,我們需要設(shè)置他的編碼格式為utf-8,以及它返回的類型,通過@RequesMapping的produces屬性來(lái)實(shí)現(xiàn),代碼如下

produces:指定響應(yīng)體返回類型和編碼

JSON處理Date格式

@RequestMapping(value = "/date1" )
@ResponseBody
public String date1() throws JsonProcessingException {
    //聲明時(shí)間日期 注意是util下的
 Date date = new Date();
    //打印默認(rèn)時(shí)間日期格式  Tue Feb 08 21:36:27 CST 2022
 System.out.println(date);
    //發(fā)現(xiàn)問題  時(shí)間默認(rèn)返回的json字符串變成了時(shí)間戳類型的格式 Timestamp 1644327387386
  return   new ObjectMapper().writeValueAsString(date);
}

發(fā)現(xiàn)問題:時(shí)間默認(rèn)返回的json字符串變成了時(shí)間戳類型的格式 Timestamp 1644327387386

處理問題:如何讓它不返回時(shí)間戳?如何時(shí)間格式化問題

//關(guān)閉ObjectMapper的時(shí)間戳功能 通過objectMapper的configure方法關(guān)閉時(shí)間戳功能
**ObjectMapper objectMapper=new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
**SimpleDateFormat simpleDateFormat = new SimpleDateFormat( “yyyy-MM-dd HH:mm:ss” );
**objectMapper.setDateFormat(simpleDateFormat);

@RequestMapping(value = "/date2" )
@ResponseBody
public String date2() throws JsonProcessingException {
     //1 如何讓它不返回時(shí)間戳?   通過objectMapper的configure方法關(guān)閉時(shí)間戳功能
 ObjectMapper objectMapper=new ObjectMapper();
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
     //2 時(shí)間格式化問題 自定義日期格式對(duì)象
 SimpleDateFormat simpleDateFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );
     //3 讓objectMapper指定日期格式為simpleDateFormat
 objectMapper.setDateFormat(simpleDateFormat);
    //聲明Date
 Date date = new Date();
    //格式化日期并輸出
    System.out.println(simpleDateFormat.format(date));//2022-02-08 22:01:12
    return objectMapper.writeValueAsString(date);//"2022-02-08 22:01:12"
}

封裝JSON工具日期轉(zhuǎn)化工具類

上述代碼冗余 我們把公共代碼提取出來(lái)進(jìn)行封裝成工具類,下次使用直接調(diào)用即可

工具類和公共方法

package com.wyh.util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.util.Date;
import java.text.SimpleDateFormat;
 /**
 *  @program:  SpringBoot-Ajax-JSON
 *  @description:  JSON日期格式化封裝類
 *  @author:  魏一鶴
 *  @createDate:  2022-02-08 22:07
 **/
public class JSONDateUtil {
    //重載 把時(shí)間戳也進(jìn)行封裝
 //如果沒有自定義時(shí)間格式的話就使用我們默認(rèn)的yyyy-MM-dd HH:mm:ss"
 //如果調(diào)用方法在參數(shù)列表指明了自定義時(shí)間格式的話就使用參數(shù)列表的時(shí)間格式
  public static String JSONFormatDateUtil(Object object){
        return JSONFormatDateUtil(object, "yyyy-MM-dd HH:mm:ss" );
    }
    // JSON轉(zhuǎn)換日期的公共方法,直接傳遞Date類型的參數(shù)使用ObjectMapper進(jìn)行處理 需要拋出異常 得到格式化好之后的json日期類型
 // 把方法用static進(jìn)行修飾是為了不用創(chuàng)建工具類對(duì)象就能直接通過“.”進(jìn)行公共方法的調(diào)用
  public static String JSONFormatDateUtil(Object object,String dateFormat){
        //1 創(chuàng)建ObjectMapper工具類
 ObjectMapper objectMapper=new ObjectMapper();
        //2 通過ObjectMapper類的configure方法關(guān)閉時(shí)間戳功能
 objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
        //3 創(chuàng)建時(shí)間格式化SimpleDateFormat類 自定義日期格式對(duì)象
 SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
        //4 把自定義格式化好之后的日期類型給objectMapper的setDateFormat去用,用來(lái)轉(zhuǎn)換時(shí)間格式
 objectMapper.setDateFormat(simpleDateFormat);
        //5 json轉(zhuǎn)換時(shí)間格式得到j(luò)son字符串日期類型
 //封裝的時(shí)候盡量不要拋異常而是捕獲異常 不然每次調(diào)用這個(gè)方法都要在其他地方進(jìn)行拋異常
 String JSONDate = null;
        try {
            JSONDate = objectMapper.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        //6 返回最終處理好的json字符串日期類型
  return JSONDate;
    }
}

使用工具類和公共方法

   //使用工具類和公共方法
 @RequestMapping(value = "/date3" )
    @ResponseBody
    public String date3()  {
        //聲明Date
 Date date = new Date();
        //使用工具類的公共方法把date進(jìn)行傳參轉(zhuǎn)換格式
 String JSONDate = JSONDateUtil.JSONFormatDateUtil(date);
        //返回json日期類型
  return JSONDate; //"2022-02-08 22:31:11"
    }
}
 //使用工具類
@RequestMapping(value = "/date3" )
@ResponseBody
public String date3()  {
    //聲明Date
 Date date = new Date();
    //使用工具類的公共方法把date進(jìn)行傳參轉(zhuǎn)換格式
 String JSONDate = JSONDateUtil.JSONFormatDateUtil(date, "yyyy" ); 
    //返回json日期類型
  return JSONDate; //"2022"
}
 //使用工具類
@RequestMapping(value = "/date3" )
@ResponseBody
public String date3()  {
    //聲明Date
 Date date = new Date();
    //使用工具類的公共方法把date進(jìn)行傳參轉(zhuǎn)換格式
 String JSONDate = JSONDateUtil.JSONFormatDateUtil(date, "yyyy-MM-dd" );
    //返回json日期類型
  return JSONDate;  //"2022-02-08"
}

到此這篇關(guān)于Java使用JSON實(shí)現(xiàn)處理中文亂碼和Date格式的文章就介紹到這了,更多相關(guān)JSON處理中文亂碼和Date格式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA的Swing可視化插件JFormDesigner詳解

    IDEA的Swing可視化插件JFormDesigner詳解

    JFormDesigner是一個(gè)專業(yè)的軟件應(yīng)用程序,專門用于幫助您開發(fā)Java?Swing用戶界面,而無(wú)需具備編程技能。它可作為獨(dú)立實(shí)用程序使用,也可以將其用作各種IDE的插件,本文給大家介紹idea?Swing可視化插件,感興趣的朋友一起看看吧
    2022-06-06
  • Java應(yīng)用EasyExcel工具類

    Java應(yīng)用EasyExcel工具類

    這篇文章主要介紹了Java應(yīng)用EasyExcel工具類,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有一定的幫助,需要的朋友可以參考下
    2021-05-05
  • SpringBoot解決循環(huán)調(diào)用問題

    SpringBoot解決循環(huán)調(diào)用問題

    作者在將SpringBoot從1.5版本升級(jí)至2.6版本,并遷移至阿里云上運(yùn)行后,遇到了循環(huán)調(diào)用問題,在Jetty容器中運(yùn)行沒問題,但在Tomcat容器中就出現(xiàn)了循環(huán)引用問題,原因是SpringBoot 2.6不鼓勵(lì)循環(huán)引用,暴露出該問題,作者提供了兩種解決思路
    2024-10-10
  • Java設(shè)計(jì)模式 模板模式及應(yīng)用場(chǎng)景解析

    Java設(shè)計(jì)模式 模板模式及應(yīng)用場(chǎng)景解析

    這篇文章主要介紹了Java設(shè)計(jì)模式 模板模式及應(yīng)用場(chǎng)景解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Springboot使用maven打包指定mainClass問題

    Springboot使用maven打包指定mainClass問題

    這篇文章主要介紹了Springboot使用maven打包指定mainClass問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java設(shè)置session超時(shí)的幾種方式總結(jié)

    Java設(shè)置session超時(shí)的幾種方式總結(jié)

    這篇文章主要介紹了Java設(shè)置session超時(shí)的幾種方式總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • 基于eclipse-temurin鏡像部署spring boot應(yīng)用的實(shí)現(xiàn)示例

    基于eclipse-temurin鏡像部署spring boot應(yīng)用的實(shí)現(xiàn)示例

    本文提供了基于eclipse-temurin鏡像部署Spring Boot應(yīng)用的詳細(xì)實(shí)現(xiàn)示例,通過使用Docker鏡像,可以輕松地創(chuàng)建和管理Spring Boot應(yīng)用程序的容器化環(huán)境,感興趣的可以了解一下
    2023-08-08
  • java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解

    java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解

    這篇文章主要介紹了java list,set,map,數(shù)組間的相互轉(zhuǎn)換詳解的相關(guān)資料,這里附有實(shí)例代碼,具有參考價(jià)值,需要的朋友可以參考下
    2017-01-01
  • idea中的jvm調(diào)優(yōu)方式

    idea中的jvm調(diào)優(yōu)方式

    這篇文章主要介紹了idea中的jvm調(diào)優(yōu)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java并發(fā)編程中構(gòu)建自定義同步工具

    Java并發(fā)編程中構(gòu)建自定義同步工具

    這篇文章主要介紹了Java并發(fā)編程中構(gòu)建自定義同步工具,本文講解了可阻塞狀態(tài)依賴操作的結(jié)構(gòu)、有界緩存實(shí)現(xiàn)基類示例、阻塞實(shí)現(xiàn)方式一:拋異常給調(diào)用者、阻塞實(shí)現(xiàn)方式二:通過輪詢和休眠、阻塞實(shí)現(xiàn)方式三:條件隊(duì)列等內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

察雅县| 阿坝| 蓬莱市| 石家庄市| 紫金县| 鹤壁市| 长沙县| 兴业县| 碌曲县| 隆昌县| 舞阳县| 青冈县| 嘉定区| 民丰县| 扶绥县| 曲沃县| 漾濞| 虞城县| 玉龙| 高安市| 嘉义县| 宁南县| 万荣县| 云浮市| 大荔县| 平阳县| 恩施市| 双流县| 张家川| 郓城县| 新化县| 宜州市| 习水县| 南开区| 张家口市| 福清市| 县级市| 武乡县| 明水县| 云和县| 绍兴县|