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

Java之字符串轉(zhuǎn)換成Java對象方式

 更新時間:2023年07月03日 10:19:06   作者:Summer⊙  
這篇文章主要介紹了Java之字符串轉(zhuǎn)換成Java對象方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java字符串轉(zhuǎn)換成Java對象

方法一

public static void main(String[] args) {
? ? ? ? String testParam = "{\"id\":\"1001\",\"name\":\"oowangfanoo\",\"sex\":\"30\"}";
? ? ? ? TestEntity testEntity = JSON.toJavaObject(JSONObject.parseObject(testParam),TestEntity.class) ;
? ? ? ? System.out.println(testEntity.toString());
? ? }

TestEntity 為自己創(chuàng)建的實體類

方法二

JSONArray jsonArray= JSONArray.parseArray(jsonObject.get("body").toString());
? ? ? ? System.out.println(jsonArray +"::::"+ jsonArray.size());
? ? ? ? for(int i=0;i<jsonArray.size();i++){
? ? ? ? ? ? JSONObject object= (JSONObject) jsonArray.get(i);
? ? ? ? ? ? System.out.println(object.get("cabinet_id"));
? ? ? ? }

字符串 Java對象 互相轉(zhuǎn)換

基于Json-Lib、Org.Json、Jackson、Gson、FastJson五種方式轉(zhuǎn)換json類型

json-lib時間有些久遠,jar包只更新到2010年

org.json用起來有些繁瑣

Jackson、Gson、FastJson只需一兩句話就可以搞定

1、FastJson

Maven依賴:

<dependency>
?<groupId>com.alibaba</groupId>
?<artifactId>fastjson</artifactId>
?<version>1.2.37</version>
</dependency>

測試demo

import com.alibaba.fastjson.JSON;
public class FastJsonDemo {
? public static void main(String[] args) {
? ? //創(chuàng)建測試object
? ? User user = new User("李寧",24,"北京");
? ? System.out.println(user);
? ? //轉(zhuǎn)成json字符串
? ? String json = JSON.toJSON(user).toString();
? ? System.out.println(json);
? ? //json字符串轉(zhuǎn)成對象
? ? User user1 = JSON.parseObject(json,User.class);
? ? System.out.println(user1);
? }
}

2、Json-Lib

json-lib時間有些久遠,jar包只更新到2010年

Maven依賴:

?<dependency> ?
? ? ? ? ? ? <groupId>net.sf.json-lib</groupId> ?
? ? ? ? ? ? <artifactId>json-lib</artifactId> ?
? ? ? ? ? ? <version>2.2.3</version> ?
? ? ? ? ? ? <classifier>jdk15</classifier> ?
?</dependency>
public static void jsonStrToJava(){
//定義兩種不同格式的字符串
String objectStr="{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市海淀區(qū)\"}";
String arrayStr="[{\"name\":\"JSON\",\"age\":\"24\",\"address\":\"北京市海淀區(qū)\"}]";
//1、使用JSONObject
JSONObject jsonObject=JSONObject.fromObject(objectStr);
Student stu=(Student)JSONObject.toBean(jsonObject, Student.class);
//2、使用JSONArray
JSONArray jsonArray=JSONArray.fromObject(arrayStr);
//獲得jsonArray的第一個元素
Object o=jsonArray.get(0);
JSONObject jsonObject2=JSONObject.fromObject(o);
Student stu2=(Student)JSONObject.toBean(jsonObject2, Student.class);
System.out.println("stu:"+stu);
System.out.println("stu2:"+stu2);
}

打印結(jié)果為:

stu:Student [name=JSON, age=24, address=北京市海淀區(qū)]
stu2:Student [name=JSON, age=24, address=北京市海淀區(qū)]

3、org.json

Maven依賴:

<dependency>
?<groupId>org.json</groupId>
?<artifactId>json</artifactId>
?<version>20170516</version>
</dependency>

測試demo

import org.json.JSONObject;
public class OrgJsonDemo {
? public static void main(String[] args) {
? ? //創(chuàng)建測試object
? ? User user = new User("李寧",24,"北京");
? ? System.out.println(user);
? ? //轉(zhuǎn)成json字符串
? ? String json = new JSONObject(user).toString();
? ? System.out.println(json);
? ? //json字符串轉(zhuǎn)成對象
? ? JSONObject jsonObject = new JSONObject(json);
? ? String name = jsonObject.getString("name");
? ? Integer age = jsonObject.getInt("age");
? ? String location = jsonObject.getString("location");
? ? User user1 = new User(name,age,location);
? ? System.out.println(user1);
? }
}

4、Jackson

Maven依賴:

<dependency>
?<groupId>com.fasterxml.jackson.core</groupId>
?<artifactId>jackson-databind</artifactId>
?<version>2.9.0</version>
</dependency>

測試demo

import com.fasterxml.jackson.databind.ObjectMapper;
public class JacksonDemo {
? public static void main(String[] args) {
? ? //創(chuàng)建測試object
? ? User user = new User("李寧",24,"北京");
? ? System.out.println(user);
? ? //轉(zhuǎn)成json字符串
? ? ObjectMapper mapper = new ObjectMapper();
? ? try {
? ? ? String json = mapper.writeValueAsString(user);
? ? ? System.out.println(json);
? ? ? //json字符串轉(zhuǎn)成對象
? ? ? User user1 = mapper.readValue(json,User.class);
? ? ? System.out.println(user1);
? ? } catch (java.io.IOException e) {
? ? ? e.printStackTrace();
? ? }
? }
}

5、Gson

Maven依賴:

<dependency>
?<groupId>com.google.code.gson</groupId>
?<artifactId>gson</artifactId>
?<version>2.8.1</version>
</dependency>

測試demo

import com.google.gson.Gson;
public class GsonDemo {
? public static void main(String[] args) {
? ? //創(chuàng)建測試object
? ? User user = new User("李寧",24,"北京");
? ? System.out.println(user);
? ? //轉(zhuǎn)成json字符串
? ? Gson gson = new Gson();
? ? String json = gson.toJson(user);
? ? System.out.println(json);
? ? //json字符串轉(zhuǎn)成對象
? ? User user1 = gson.fromJson(json,User.class);
? ? System.out.println(user1);
? }
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • springboot運行jar生成的日志到指定文件進行管理方式

    springboot運行jar生成的日志到指定文件進行管理方式

    這篇文章主要介紹了springboot運行jar生成的日志到指定文件進行管理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Maven profile實現(xiàn)不同環(huán)境的配置管理實踐

    Maven profile實現(xiàn)不同環(huán)境的配置管理實踐

    這篇文章主要介紹了Maven profile實現(xiàn)不同環(huán)境的配置管理實踐,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java程序?qū)崿F(xiàn)連接數(shù)據(jù)庫

    Java程序?qū)崿F(xiàn)連接數(shù)據(jù)庫

    本文詳細介紹了在Java程序中導(dǎo)入jar包、連接數(shù)據(jù)庫并操作表格的方法,包括新建數(shù)據(jù)庫、創(chuàng)建表、編寫Java代碼連接數(shù)據(jù)庫等步驟,最后通過返回結(jié)果集輸出數(shù)據(jù)
    2026-04-04
  • Java中利用BitMap位圖實現(xiàn)海量級數(shù)據(jù)去重

    Java中利用BitMap位圖實現(xiàn)海量級數(shù)據(jù)去重

    有許多方法可以用來去重,比如使用列表、集合等等,但這些方法通常只適用于一般情況,然而,當涉及到大量數(shù)據(jù)去重時,常見的 Java Set、List,甚至是 Java 8 的新特性 Stream 流等方式就顯得不太合適了,本文給大家介紹了Java中利用BitMap位圖實現(xiàn)海量級數(shù)據(jù)去重
    2024-04-04
  • Spring 自定義事件監(jiān)聽器實現(xiàn)步驟詳解

    Spring 自定義事件監(jiān)聽器實現(xiàn)步驟詳解

    本文詳細介紹了Spring自定義事件監(jiān)聽器的實現(xiàn)步驟,包括定義事件、發(fā)布事件、監(jiān)聽并處理事件等,結(jié)合異步和自定義線程池等擴展能力,通過標準化步驟,提供代碼示例和關(guān)鍵說明,幫助開發(fā)者實現(xiàn)事件驅(qū)動架構(gòu),感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • Mybatis 實現(xiàn)一個搜索框?qū)Χ鄠€字段進行模糊查詢

    Mybatis 實現(xiàn)一個搜索框?qū)Χ鄠€字段進行模糊查詢

    這篇文章主要介紹了Mybatis 實現(xiàn)一個搜索框?qū)Χ鄠€字段進行模糊查詢,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • StringUtils工具包中字符串非空判斷isNotEmpty和isNotBlank的區(qū)別

    StringUtils工具包中字符串非空判斷isNotEmpty和isNotBlank的區(qū)別

    今天小編就為大家分享一篇關(guān)于StringUtils工具包中字符串非空判斷isNotEmpty和isNotBlank的區(qū)別,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • MyBatis中高級多表查詢(ResultMap、association、collection)詳解

    MyBatis中高級多表查詢(ResultMap、association、collection)詳解

    文章主要介紹了MyBatis中高級多表查詢的四種方式:ResultMap、association、collection以及自連接查詢,通過定義接口的抽象方法、編寫mapper.xml和測試類,詳細展示了如何根據(jù)復(fù)雜數(shù)據(jù)結(jié)構(gòu)進行數(shù)據(jù)的裝配和查詢,感興趣的朋友一起看看吧
    2024-11-11
  • MyBatis一對多關(guān)系使用@Many注解的實現(xiàn)

    MyBatis一對多關(guān)系使用@Many注解的實現(xiàn)

    本文介紹了在MyBatis中實現(xiàn)一對多查詢的方法,包括數(shù)據(jù)表和數(shù)據(jù)類的設(shè)計,以及使用@Many注解進行查詢,具有一定的參考價值,感興趣的可以了解一下
    2025-11-11
  • 通過字節(jié)碼看java中this的隱式傳參詳解

    通過字節(jié)碼看java中this的隱式傳參詳解

    這篇文章主要給大家介紹了關(guān)于如何通過字節(jié)碼看java中this的隱式傳參的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11

最新評論

龙海市| 吴江市| 龙胜| 新建县| 怀化市| 开阳县| 长顺县| 怀来县| 通辽市| 汕尾市| 洪江市| 富蕴县| 丹寨县| 安塞县| 那坡县| 宜春市| 古田县| 曲周县| 乃东县| 汶上县| 临汾市| 甘洛县| 木兰县| 泸西县| 定远县| 剑川县| 常熟市| 兴海县| 牡丹江市| 台南市| 宁都县| 两当县| 玉山县| 南郑县| 兴文县| 天津市| 平和县| 苍南县| 曲水县| 西宁市| 仁寿县|