激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java FastJson的簡單用法

java FastJson的簡單用法

2021-12-25 17:02夢里夢外 Java教程

FastJson是阿里的開源JSON解析庫,可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean,這里我介紹一下FastJson的使用,感興趣的朋友一起看看吧

1.前言

1.1.FastJson的介紹:

  JSON(javaScript Object Notation)是一種輕量級的數據交換格式。主要采用鍵值對({"name": "json"})的方式來保存和表示數據。JSONJS對象的字符串表示法,它使用文本表示一個JS對象的信息,本質上是一個字符串。

  JSON的處理器有很多,這里我介紹一下FastJson,FastJson是阿里的開源JSON解析庫,可以解析JSON格式的字符串,支持將Java Bean序列化為JSON字符串,也可以從JSON字符串反序列化到JavaBean。是一個極其優秀的Json框架,Github地址:FastJson

1.2.FastJson的特點:

1.FastJson數度快,無論序列化和反序列化,都是當之無愧的fast
2.功能強大(支持普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)
3.零依賴(沒有依賴其它任何類庫)

1.3.FastJson的簡單說明:

FastJson對于json格式字符串的解析主要用到了下面三個類:
1.JSON:fastJson的解析器,用于JSON格式字符串與JSON對象及javaBean之間的轉換
2.JSONObject:fastJson提供的json對象
3.JSONArray:fastJson提供json數組對象

2.FastJson的用法

首先定義三個json格式的字符串

?
1
2
3
4
5
6
7
8
//json字符串-簡單對象型
private static final String  JSON_OBJ_STR = "{\"studentName\":\"lily\",\"studentAge\":12}";
 
//json字符串-數組類型
private static final String  JSON_ARRAY_STR = "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]";
 
//復雜格式json字符串
private static final String  COMPLEX_JSON_STR = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}";

2.1.JSON格式字符串與JSON對象之間的轉換

2.1.1.json字符串-簡單對象型與JSONObject之間的轉換

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
 * json字符串-簡單對象型到JSONObject的轉換
 */
@Test
public void testJSONStrToJSONObject() {
 
    JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
 
    System.out.println("studentName:  " + jsonObject.getString("studentName") + ":" + "  studentAge:  "
            + jsonObject.getInteger("studentAge"));
 
}
 
/**
 * JSONObject到json字符串-簡單對象型的轉換
 */
@Test
public void testJSONObjectToJSONStr() {
 
    //已知JSONObject,目標要轉換為json字符串
    JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
    // 第一種方式
    String jsonString = JSONObject.toJSONString(jsonObject);
 
    // 第二種方式
    //String jsonString = jsonObject.toJSONString();
    System.out.println(jsonString);
}

2.1.3.復雜json格式字符串與JSONObject之間的轉換

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/**
 * 復雜json格式字符串到JSONObject的轉換
 */
@Test
public void testComplexJSONStrToJSONObject() {
 
    JSONObject jsonObject = JSONObject.parseObject(COMPLEX_JSON_STR);
 
    String teacherName = jsonObject.getString("teacherName");
    Integer teacherAge = jsonObject.getInteger("teacherAge");
 
    System.out.println("teacherName:  " + teacherName + "   teacherAge:  " + teacherAge);
 
    JSONObject jsonObjectcourse = jsonObject.getJSONObject("course");
     //獲取JSONObject中的數據
    String courseName = jsonObjectcourse.getString("courseName");
    Integer code = jsonObjectcourse.getInteger("code");
 
    System.out.println("courseName:  " + courseName + "   code:  " + code);
 
    JSONArray jsonArraystudents = jsonObject.getJSONArray("students");
 
    //遍歷JSONArray
    for (Object object : jsonArraystudents) {
 
        JSONObject jsonObjectone = (JSONObject) object;
        String studentName = jsonObjectone.getString("studentName");
        Integer studentAge = jsonObjectone.getInteger("studentAge");
 
        System.out.println("studentName:  " + studentName + "   studentAge:  " + studentAge);
    }
}
 
/**
 * 復雜JSONObject到json格式字符串的轉換
 */
@Test
public void testJSONObjectToComplexJSONStr() {
 
   //復雜JSONObject,目標要轉換為json字符串
    JSONObject jsonObject = JSONObject.parseObject(COMPLEX_JSON_STR);
 
    //第一種方式
    //String jsonString = JSONObject.toJSONString(jsonObject);
 
    //第二種方式
    String jsonString = jsonObject.toJSONString();
    System.out.println(jsonString);
 
}

2.2.JSON格式字符串與javaBean之間的轉換

2.2.1.json字符串-簡單對象型與javaBean之間的轉換

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
 * json字符串-簡單對象到JavaBean之間的轉換
 */
@Test
public void testJSONStrToJavaBeanObj() {
 
    //第一種方式
    JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
 
    String studentName = jsonObject.getString("studentName");
    Integer studentAge = jsonObject.getInteger("studentAge");
 
    //Student student = new Student(studentName, studentAge);
 
    //第二種方式,使用TypeReference<T>類,由于其構造方法使用protected進行修飾,故創建其子類
    //Student student = JSONObject.parseObject(JSON_OBJ_STR, new TypeReference<Student>() {});
 
    //第三種方式,使用Gson的思想
    Student student = JSONObject.parseObject(JSON_OBJ_STR, Student.class);
 
    System.out.println(student);
}
 
/**
 * JavaBean到json字符串-簡單對象的轉換
 */
@Test
public void testJavaBeanObjToJSONStr() {
 
    Student student = new Student("lily", 12);
    String jsonString = JSONObject.toJSONString(student);
    System.out.println(jsonString);
}

2.3.javaBean與json對象間的之間的轉換

2.3.1.簡單javaBean與json對象之間的轉換

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
 * 簡單JavaBean_obj到json對象的轉換
 */
@Test
public void testJavaBeanToJSONObject(){
 
    //已知簡單JavaBean_obj
    Student student = new Student("lily", 12);
 
    //方式一
    String jsonString = JSONObject.toJSONString(student);
    JSONObject jsonObject = JSONObject.parseObject(jsonString);
    System.out.println(jsonObject);
 
    //方式二
    JSONObject jsonObject1 = (JSONObject) JSONObject.toJSON(student);
    System.out.println(jsonObject1);
}
 
/**
 * 簡單json對象到JavaBean_obj的轉換
 */
@Test
public void testJSONObjectToJavaBean(){
 
    //已知簡單json對象
    JSONObject jsonObject = JSONObject.parseObject(JSON_OBJ_STR);
 
    //第一種方式,使用TypeReference<T>類,由于其構造方法使用protected進行修飾,故創建其子類
    Student student = JSONObject.parseObject(jsonObject.toJSONString(), new TypeReference<Student>() {});
    System.out.println(student);
 
    //第二種方式,使用Gson的思想
    Student student1 = JSONObject.parseObject(jsonObject.toJSONString(), Student.class);
    System.out.println(student1);
}

2.3.2.JavaList與JsonArray之間的轉換

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
 * JavaList到JsonArray的轉換
 */
@Test
public void testJavaListToJsonArray() {
 
    //已知JavaList
    Student student = new Student("lily", 12);
    Student studenttwo = new Student("lucy", 15);
 
    List<Student> students = new ArrayList<Student>();
    students.add(student);
    students.add(studenttwo);
 
    //方式一
    String jsonString = JSONArray.toJSONString(students);
    JSONArray jsonArray = JSONArray.parseArray(jsonString);
    System.out.println(jsonArray);
 
    //方式二
    JSONArray jsonArray1 = (JSONArray) JSONArray.toJSON(students);
    System.out.println(jsonArray1);
}
 
/**
 * JsonArray到JavaList的轉換
 */
@Test
public void testJsonArrayToJavaList() {
 
    //已知JsonArray
    JSONArray jsonArray = JSONArray.parseArray(JSON_ARRAY_STR);
 
    //第一種方式,使用TypeReference<T>類,由于其構造方法使用protected進行修飾,故創建其子類
    ArrayList<Student> students = JSONArray.parseObject(jsonArray.toJSONString(),
            new TypeReference<ArrayList<Student>>() {});
 
    System.out.println(students);
 
    //第二種方式,使用Gson的思想
    List<Student> students1 = JSONArray.parseArray(jsonArray.toJSONString(), Student.class);
    System.out.println(students1);
}

2.3.3.復雜JavaBean_obj與json對象之間的轉換

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/**
 * 復雜JavaBean_obj到json對象的轉換
 */
@Test
public void testComplexJavaBeanToJSONObject() {
 
    //已知復雜JavaBean_obj
    Student student = new Student("lily", 12);
    Student studenttwo = new Student("lucy", 15);
 
    List<Student> students = new ArrayList<Student>();
    students.add(student);
    students.add(studenttwo);
    Course course = new Course("english", 1270);
 
    Teacher teacher = new Teacher("crystall", 27, course, students);
 
    //方式一
    String jsonString = JSONObject.toJSONString(teacher);
    JSONObject jsonObject = JSONObject.parseObject(jsonString);
    System.out.println(jsonObject);
 
    //方式二
    JSONObject jsonObject1 = (JSONObject) JSONObject.toJSON(teacher);
    System.out.println(jsonObject1);
 
}
 
/**
 * 復雜json對象到JavaBean_obj的轉換
 */
@Test
public void testComplexJSONObjectToJavaBean() {
 
    //已知復雜json對象
    JSONObject jsonObject = JSONObject.parseObject(COMPLEX_JSON_STR);
 
    //第一種方式,使用TypeReference<T>類,由于其構造方法使用protected進行修飾,故創建其子類
    Teacher teacher = JSONObject.parseObject(jsonObject.toJSONString(), new TypeReference<Teacher>() {});
    System.out.println(teacher);
 
    //第二種方式,使用Gson的思想
    Teacher teacher1 = JSONObject.parseObject(jsonObject.toJSONString(), Teacher.class);
    System.out.println(teacher1);
}

總結

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 把JSON文本parse為JSONObject或者JSONArray
        public static final Object parse(String text);
        
        // 把JSON文本parse成JSONObject
        public static final JSONObject parseObject(String text);
        
        // 把JSON文本parse為JavaBean
        public static final <T> T parseObject(String text, Class<T> clazz);
        
        // 把JSON文本parse成JSONArray
        public static final JSONArray parseArray(String text);
        
        //把JSON文本parse成JavaBean集合
        public static final <T> List<T> parseArray(String text, Class<T> clazz);
        
        // 將JavaBean序列化為JSON文本
        public static final String toJSONString(Object object);
        
        // 將JavaBean序列化為帶格式的JSON文本
        public static final String toJSONString(Object object, boolean prettyFormat);
        
        //將JavaBean轉換為JSONObject或者JSONArray。
        public static final Object toJSON(Object javaObject);

參考

https://segmentfault.com/a/1190000011212806

https://www.cnblogs.com/miracle-luna/p/11143702.html

https://github.com/alibaba/fastjson

到此這篇關于java FastJson的簡單用法的文章就介紹到這了,更多相關java FastJson使用內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/mengw/p/11385635.html

延伸 · 閱讀

精彩推薦
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關于小米推送Java代碼,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩中求8032021-07-12
  • Java教程Java實現搶紅包功能

    Java實現搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java BufferWriter寫文件寫不進去或缺失數據的解決

    Java BufferWriter寫文件寫不進去或缺失數據的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數據的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經有好久沒有升過級了。升級完畢重啟之后,突然發現好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發現了對于集合操作轉換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關于Java8中S...

    阿杜7482021-02-04
  • Java教程xml與Java對象的轉換詳解

    xml與Java對象的轉換詳解

    這篇文章主要介紹了xml與Java對象的轉換詳解的相關資料,需要的朋友可以參考下...

    Java教程網2942020-09-17
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
主站蜘蛛池模板: 精品成人一区二区三区 | 91av在线影院 | 久久观看免费视频 | 日韩色视频 | 草人人 | av不卡毛片| 色婷婷久久久亚洲一区二区三区 | 午夜精品久久久久久中宇 | 日本欧美一区二区三区在线观看 | 一区二区三区在线观看国产 | 国产亚洲精品久久久久婷婷瑜伽 | 欧美 日韩 亚洲 中文 | 成人三级电影在线 | 91精品国产91热久久久做人人 | 久久精品免费国产 | 久久人人爽人人爽人人片av高清 | 看毛片免费 | 久久久综 | 欧美精品一级 | 国产成年人视频 | 亚洲午夜在线观看 | 日本精品婷婷久久爽一下 | 欧洲成人精品 | 毛片118极品美女写真 | asian附近女人裸体pics | 永久免费不卡在线观看黄网站 | 亚洲视频在线观看免费 | 欧美视频一区二区三区四区 | 美国一级黄色毛片 | 美女网站色免费 | 成人超碰 | 日本大片在线播放 | 成人羞羞网站入口 | 国产成人自拍av | 久久精品国产99国产精品澳门 | 免费看成人av | 欧美久久久一区二区三区 | 久久精品视频1 | 久草亚洲视频 | 在线播放污 | 成人在线高清视频 |