中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JSON與Java對象之間的轉化方法是什么

發布時間:2023-05-06 11:31:32 來源:億速云 閱讀:136 作者:iii 欄目:開發技術

本篇內容介紹了“JSON與Java對象之間的轉化方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

前言

在現在的日常開發中,不管前端還是后端,JSON 格式的數據是用得比較多的,甚至可以說無處不在。

接觸最多的就是 POST 請求中傳遞的數據一般以 JSON 的格式放在請求體中,而且服務端各種 API 返回的數據,在響應體中也基本都是以 JSON 格式的數據進行返回的,這也是 RESTful 風格的體現之一。

當然,不止是請求與響應的過程中使用到 JSON,在某些業務場景下也是需要用到 JSON 的,特別是 JSON 與 Java 對象之間的轉化所以,對于 Java 開發的我們來說,JSON 格式的數據與 Java 對象之間的轉化是必會的。

轉化的工具

主流的轉化工具有如下幾種,一般項目中建議只選其中一種,目前好評最多的感覺就是 Jackson 了。

  • Jackson

  • FastJson

  • Gson

  • Hutool

準備的 JSON 字符串和 List

為了方便演示,這里給出一個 JSON 字符串:

String jsonStr = "{\"name\" : \"GTA5\", \"price\" : 54.5}";

這里給出一個 List<Game>

Game game1 = Game.builder().name("NBA2K23").price(new BigDecimal("198.0")).build();
Game game2 = Game.builder().name("Sim City4").price(new BigDecimal("22.5")).build();
List<Game> gameList = new ArrayList<>();
gameList.add(game1);
gameList.add(game2);

Jackson

我們需要借助 Jackson 提供的 ObjectMapper 對象來完成轉化:

ObjectMapper objectMapper = new ObjectMapper();

將 JSON 字符串 轉成 Java 對象:readValue

使用 readValue 方法,第一個參數是 JSON 字符串,第二個參數是轉化的目標類的類型。

// 將 JSON 字符串 轉成 Java 對象
Game game = objectMapper.readValue(jsonStr, Game.class);

將 Java 對象轉成 JSON 字符串:writeValueAsString

使用 writeValueAsString 方法,接受一個 Java 對象,返回一個 JSON 字符串。

// 將 Java 對象轉成 JSON 字符串
String gameJson = objectMapper.writeValueAsString(game);

將 List 轉成 JSON 字符串:writeValueAsString

同樣使用 writeValueAsString 方法。

// 將 List<Game> 轉成 JSON 字符串
String gameListJson = objectMapper.writeValueAsString(gameList);

將 JSON 字符串 轉成 List:readValue

使用 readValue 方法,第一個參數是 JSON 字符串,第二個參數是轉化的目標 TypeReference(類型參照)對象,這里指定其泛型為 List<Game>

// 將 JSON 字符串 轉成 List<Game>
List<Game> gameListFromJson = objectMapper.readValue(gameListJson, new TypeReference<List<Game>>() {});

總結

從 JSON 到 Java 對象,使用 readValue 方法。

從 Java 對象到 JSON,使用 writeValueAsString 方法。

FastJson

我們需要借助 FastJson 提供的 JSONObject 對象來完成轉化。

將 JSON 字符串 轉成 Java 對象:parseObject

使用 parseObject 方法,將 JSON 字符串解析(轉化)成 Java 對象,第一個參數是 JSON 字符串,第二個參數是目標類的類型。

// 將 JSON 字符串 轉成 Java 對象
Game game = JSONObject.parseObject(jsonStr, Game.class);

將 Java 對象轉成 JSON 字符串:toJSONString

使用 toJSONString 方法,將 Java 對象直接轉成 JSON 字符串,接受一個 Java 對象,返回對應的 JSON 字符串。

// 將 Java 對象轉成 JSON 字符串
String gameJson = JSONObject.toJSONString(game);

將 List 轉成 JSON 字符串:toJSONString

同理,可以直接丟一個 List 對象給 toJSONString 方法,把 List 轉成 JSON 字符串。

// 將 List<Game> 轉成 JSON 字符串
String gameListJson = JSONObject.toJSONString(gameList);

將 JSON 字符串 轉成 List:parseArray

使用 parseArray 方法,將 JSON 字符串解析成 List。2.0 版本需要調用 toJavaList 方法,得到最后的 List

// 將 JSON 字符串 轉成 List<Game>
// fastjson 1.2.x 版本:List<Game> gameListFromJson = JSONObject.parseArray(gameListJson, Game.class);
List<Game> gameListFromJson = JSONArray.parseArray(gameListJson).toJavaList(Game.class);

總結

JSON 轉成 Java Bean 使用 parseObject 方法,轉成 List 使用 parseArray 方法。

任意對象轉成 JSON,則使用 toJSONString 方法。

Gson

我們需要借助 Gson 對象來完成轉化:

Gson gson = new Gson();

將 JSON 字符串 轉成 Java 對象:fromJson

使用 fromJson 方法,兩個參數的定義也是和上面兩個一樣的。

// 將 JSON 字符串 轉成 Java 對象
Game game = gson.fromJson(jsonStr, Game.class);

將 Java 對象轉成 JSON 字符串:toJson

使用 toJson 方法,接受一個 Java 對象,然后返回對應的 JSON 字符串。

// 將 Java 對象轉成 JSON 字符串
String gameJson = gson.toJson(game);

將 List 轉成 JSON 字符串:toJson

List 也是同理,使用 toJson 方法。

// 將 List&lt;Game&gt; 轉成 JSON 字符串
String gameListJson = gson.toJson(gameList);

將 JSON 字符串 轉成 List:fromJson

這里和 Jackson 的也是類似,第二個參數使用 TypeToken 對象指定轉化的目標類型為 List<Game>

// 將 JSON 字符串 轉成 List&lt;Game&gt;
List&lt;Game&gt; gameListFromJson = gson.fromJson(gameListJson, new TypeToken&lt;List&lt;Game&gt;&gt;() {}.getType());

總結

從 JSON 到 Java 對象,使用 fromJson 方法。

從 Java 對象到 JSON,使用 toJson 方法。

Hutool

我們需要借助 Hutool 提供的 JSONUtil 對象來完成轉化。

將 JSON 字符串 轉成 Java 對象:toBean

使用 toBean 方法,還是同樣的,接受的兩個參數,一個字符串,一個目標類的類型。

// 將 JSON 字符串 轉成 Java 對象
Game game = JSONUtil.toBean(jsonStr, Game.class);

將 Java 對象轉成 JSON 字符串:toJsonStr

使用 toJsonStr 方法,接受一個 Java 對象,返回一個 JSON 字符串。

// 將 Java 對象轉成 JSON 字符串
String gameJson = JSONUtil.toJsonStr(game);

將 List 轉成 JSON 字符串:toJsonStr

同理,也是 toJsonStr 方法。

// 將 List&lt;Game&gt; 轉成 JSON 字符串
String gameListJson = JSONUtil.toJsonStr(gameList);

將 JSON 字符串 轉成 List:toList

使用 toList 方法,和 toBean 方法接受的參數一樣。

// 將 JSON 字符串 轉成 List&lt;Game&gt;
List&lt;Game&gt; gameListFromJson = JSONUtil.toList(gameListJson, Game.class);

總結

JSON 轉成 Java Bean 使用 toBean 方法,轉成 List 使用 toList 方法。

任意對象轉成 JSON,則使用 toJsonStr 方法。

“JSON與Java對象之間的轉化方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永胜县| 镇沅| 黑河市| 轮台县| 襄樊市| 巴林右旗| 池州市| 青铜峡市| 阜康市| 竹山县| 马鞍山市| 嘉祥县| 榆树市| 天气| 古丈县| 靖安县| 台南县| 友谊县| 加查县| 临漳县| 上高县| 米易县| 金秀| 金湖县| 集贤县| 灌云县| 蒙城县| 亳州市| 吴江市| 松江区| 临城县| 图木舒克市| 搜索| 青铜峡市| 湄潭县| 长乐市| 岳池县| 东乌珠穆沁旗| 郁南县| 颍上县| 松滋市|