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

Java對象轉(zhuǎn)JSON三種常用的方法

 更新時間:2024年04月13日 14:50:22   作者:猿泰山  
在Java中可以使用多種方式將對象轉(zhuǎn)換為JSON字符串,下面這篇文章主要給大家介紹了關(guān)于Java對象轉(zhuǎn)JSON三種常用的方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

前言

在Java編程中,我們經(jīng)常需要將Java對象轉(zhuǎn)換為JSON格式,以便于數(shù)據(jù)的傳輸和存儲。本文將介紹三種常用的方法來實現(xiàn)Java對象到JSON的轉(zhuǎn)換,分別是使用org.json.JSONObject,Google GsonJackson。

一、使用org.json.JSONObject

雖然org.json.JSONObject通常用于解析JSON字符串,但它并不直接支持從Java對象轉(zhuǎn)換為JSON。因此,上面的代碼示例中使用JSONObject object = new JSONObject(student);這行代碼實際上是有誤的,它會導(dǎo)致編譯錯誤。為了修正這個問題,我們需要手動構(gòu)建JSON對象,或者考慮使用其他庫,如Gson或Jackson。

然而,為了本文的完整性,我們可以展示如何使用org.json手動構(gòu)建JSON對象:

JSONObject object = new JSONObject();
object.put("id", student.getId());
object.put("name", student.getName());
object.put("age", student.getAge());
object.put("courses", new JSONArray(student.getCourses()));
String json = object.toString();
System.out.println(json);

二、使用Google Gson

Gson是Google提供的一個用于將Java對象轉(zhuǎn)換為JSON字符串的庫,它非常流行且易于使用。要使用Gson,首先需要將Gson庫添加到項目的依賴中。然后,可以通過創(chuàng)建Gson對象并調(diào)用其toJson()方法將Java對象轉(zhuǎn)換為JSON字符串。

Gson gson = new Gson();
String json = gson.toJson(student);
System.out.println(json);

三、使用Jackson

Jackson是另一個廣泛使用的Java庫,用于處理JSON數(shù)據(jù)。與Gson類似,Jackson也提供了簡單的方法來將Java對象轉(zhuǎn)換為JSON字符串。要使用Jackson,需要添加Jackson庫到項目依賴中。然后,可以創(chuàng)建一個ObjectMapper對象,并調(diào)用其writeValueAsString()方法將Java對象轉(zhuǎn)換為JSON字符串。

ObjectMapper mapper = new ObjectMapper();
String jsonStr = mapper.writeValueAsString(student);
System.out.println(jsonStr);

結(jié)論:

雖然上面的代碼示例中包含了一個小錯誤(關(guān)于org.json.JSONObject的使用),但它仍然展示了在Java中將對象轉(zhuǎn)換為JSON的三種不同方法。在實際項目中,你可以根據(jù)自己的喜好和項目需求選擇適合的庫。Gson和Jackson都提供了強大的功能和靈活的配置選項,使得處理JSON數(shù)據(jù)變得簡單而高效。

附:java對象轉(zhuǎn)json,數(shù)字精確出現(xiàn)丟失問題

這兩個問題都不是json工具包(比如Gson)的問題,而是由于js存儲大數(shù)字丟失精度引起。

1、精度丟失例子:當js表達整數(shù)時,最多表達15位數(shù)字,如果超過15位就會出現(xiàn)精度丟失問題。

援引js文檔:

精度

整數(shù)(不使用小數(shù)點或指數(shù)計數(shù)法)最多為 15 位。

最后幾位都變?yōu)?,丟失精度

var x = 1234567890123456999;
console.log(x);

輸出結(jié)果:1234567890123457000

2、數(shù)字再大一些就會出現(xiàn),科學(xué)計數(shù)法

var x = 123456789012345699999999;
console.log(x);

輸出結(jié)果:1.234567890123457e+23

解決辦法

后臺屬性由數(shù)字類型改為字符串,轉(zhuǎn)為json,傳到前臺就不會丟失了。

到此這篇關(guān)于Java對象轉(zhuǎn)JSON三種常用的方法的文章就介紹到這了,更多相關(guān)Java對象轉(zhuǎn)JSON內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java控制臺輸出百分比進度條示例

    java控制臺輸出百分比進度條示例

    這篇文章主要介紹了java控制臺輸出百分比進度條示例,需要的朋友可以參考下
    2014-04-04
  • Mybatis對于int類型的參數(shù)問題及解決過程

    Mybatis對于int類型的參數(shù)問題及解決過程

    Mybatis參數(shù)傳遞與數(shù)據(jù)庫查詢中int類型問題分析及解決,探討int類型在Mybatis中與數(shù)據(jù)庫查詢時的誤判問題因及解決辦法,并提出優(yōu)化建議
    2026-06-06
  • springboot整合httpClient代碼實例

    springboot整合httpClient代碼實例

    這篇文章主要介紹了springboot整合httpClient代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2019-12-12
  • Spring中的@RefreshScope注解作用

    Spring中的@RefreshScope注解作用

    這篇文章主要介紹了Spring中的@RefreshScope注解作用詳解,@RefreshScope注解是Spring Cloud中的一個重要注解,用于實現(xiàn)動態(tài)刷新配置的功能,當我們在應(yīng)用程序中使用@Value注解獲取配置屬性時,如果配置發(fā)生變化,需要重啟應(yīng)用程序才能生效,需要的朋友可以參考下
    2023-10-10
  • Spring Boot Shiro在Web應(yīng)用中的作用詳解

    Spring Boot Shiro在Web應(yīng)用中的作用詳解

    這篇文章主要為大家介紹了Spring Boot Shiro在Web應(yīng)用中的作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Spring?MVC基于注解的使用之JSON數(shù)據(jù)處理的方法

    Spring?MVC基于注解的使用之JSON數(shù)據(jù)處理的方法

    這篇文章主要介紹了Spring?MVC基于注解的使用JSON數(shù)據(jù)處理,json是一種輕量級的數(shù)據(jù)交換格式,是一種理想的數(shù)據(jù)交互語言,它易于閱讀和編寫,同時也易于機器解析和生成,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-05-05
  • Servlet和Spring?MVC的區(qū)別及使用說明

    Servlet和Spring?MVC的區(qū)別及使用說明

    這篇文章詳細介紹了Servlet和SpringMVC的基本概念、工作原理、功能對比和應(yīng)用場景,Servlet是JavaWeb開發(fā)的基礎(chǔ),而SpringMVC是一個基于Servlet的高級框架,提供了更強大的功能和易用性,文章通過定義、原理和示例代碼,幫助讀者理解這兩個技術(shù)的區(qū)別與聯(lián)系
    2025-01-01
  • 基于Nacos實現(xiàn)SpringBoot動態(tài)定時任務(wù)調(diào)度

    基于Nacos實現(xiàn)SpringBoot動態(tài)定時任務(wù)調(diào)度

    本文主要介紹了在Spring Boot項目中使用Spring Scheduling實現(xiàn)定時任務(wù),并通過Nacos動態(tài)配置Cron表達式實現(xiàn)任務(wù)的動態(tài)變更,通過實現(xiàn)SchedulingConfigurer接口和訂閱Nacos配置變更事件,成功實現(xiàn)了任務(wù)的動態(tài)調(diào)度和暫停
    2025-11-11
  • Java?Optional避免空指針異常的實現(xiàn)

    Java?Optional避免空指針異常的實現(xiàn)

    空指針異常一直是困擾開發(fā)者的常見問題之一,本文主要介紹了Java?Optional避免空指針異常的實現(xiàn),幫助開發(fā)者編寫更健壯、可讀性更高的代碼,減少因空值處理不當而引發(fā)的錯誤,感興趣的可以了解一下
    2025-04-04
  • springboot手動事務(wù)回滾的實現(xiàn)代碼

    springboot手動事務(wù)回滾的實現(xiàn)代碼

    這篇文章主要介紹了springboot手動事務(wù)回滾的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07

最新評論

监利县| 衡阳市| 吉首市| 承德县| 庄浪县| 开平市| 怀仁县| 凌海市| 大港区| 滨州市| 武隆县| 德化县| 长沙县| 南澳县| 孝感市| 泰州市| 诸城市| 岫岩| 探索| 西和县| 洪湖市| 利辛县| 天镇县| 淳安县| 千阳县| 万宁市| 赤峰市| 德保县| 如东县| 清涧县| 延边| 黄浦区| 漾濞| 宜兴市| 桃园县| 兰溪市| 阿拉善右旗| 南召县| 同心县| 阿勒泰市| 乐至县|