一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 實例解析Java的Jackson庫中的數據綁定

實例解析Java的Jackson庫中的數據綁定

2020-03-21 15:21goldensun JAVA教程

這篇文章主要介紹了Java的Jackson庫中的數據綁定,這里分為通常的簡單數據綁定與全數據綁定兩種情況來講,需要的朋友可以參考下

數據綁定API用于JSON轉換和使用屬性訪問或使用注解POJO(普通Java對象)。以下是它的兩個類型。

簡單數據綁定 - 轉換JSON,從Java Maps, Lists, Strings, Numbers, Booleans 和 null 對象。

完整數據綁定 - 轉換JSON到任何JAVA類型。我們將在下一章分別綁定。

ObjectMapper讀/寫JSON兩種類型的數據綁定。數據綁定是最方便的方式是類似XML的JAXB解析器。

簡單的數據綁定
簡單的數據綁定是指JSON映射到Java核心數據類型。下表列出了JSON類型和Java類型之間的關系。

實例解析Java的Jackson庫中的數據綁定

讓我們來看看簡單的數據操作綁定。在這里,我們將映射JAVA基本類型直接JSON,反之亦然。

創建一個名為JacksonTester在Java類文件在目錄 C:\>Jackson_WORKSPACE.

File: JacksonTester.java

?
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
 
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
 
public class JacksonTester {
  public static void main(String args[]){
   JacksonTester tester = new JacksonTester();
     try {
      ObjectMapper mapper = new ObjectMapper();
 
      Map<String,Object> studentDataMap = new HashMap<String,Object>();
      int[] marks = {1,2,3};
 
      Student student = new Student();
      student.setAge(10);
      student.setName("Mahesh");
      // JAVA Object
      studentDataMap.put("student", student);
      // JAVA String
      studentDataMap.put("name", "Mahesh Kumar");  
      // JAVA Boolean
      studentDataMap.put("verified", Boolean.FALSE);
      // Array
      studentDataMap.put("marks", marks);
 
      mapper.writeValue(new File("student.json"), studentDataMap);
      //result student.json
  //{
      //  "student":{"name":"Mahesh","age":10},
      //  "marks":[1,2,3],
      //  "verified":false,
      //  "name":"Mahesh Kumar"
      //}
      studentDataMap = mapper.readValue(new File("student.json"), Map.class);
 
      System.out.println(studentDataMap.get("student"));
      System.out.println(studentDataMap.get("name"));
      System.out.println(studentDataMap.get("verified"));
      System.out.println(studentDataMap.get("marks"));
   } catch (JsonParseException e) {
     e.printStackTrace();
   } catch (JsonMappingException e) {
     e.printStackTrace();
   } catch (IOException e) {
      e.printStackTrace();
   }
  }
}
 
class Student {
  private String name;
  private int age;
  public Student(){}
  public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public int getAge() {
   return age;
  }
  public void setAge(int age) {
   this.age = age;
  }
  public String toString(){
   return "Student [ name: "+name+", age: "+ age+ " ]";
  }
}

驗證結果

使用javac編譯如下類:

復制代碼 代碼如下:

C:\Jackson_WORKSPACE>javac JacksonTester.java

現在運行jacksonTester看到的結果:
復制代碼 代碼如下:

C:\Jackson_WORKSPACE>java JacksonTester

驗證輸出結果

 

?
1
2
3
4
{name=Mahesh, age=10}
Mahesh Kumar
false
[1, 2, 3]

全數據綁定
完全數據綁定是指JSON映射到任何Java對象。

?
1
2
3
4
5
6
//Create an ObjectMapper instance
ObjectMapper mapper = new ObjectMapper();
//map JSON content to Student object
Student student = mapper.readValue(new File("student.json"), Student.class);
//map Student object to JSON content
mapper.writeValue(new File("student.json"), student);

讓我們來看看簡單的數據操作綁定。在這里,我們將直接映射Java對象到JSON,反之亦然。

創建一個名為JacksonTester在Java類文件目錄 C:\>Jackson_WORKSPACE.

File: JacksonTester.java

?
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
51
52
53
54
55
56
57
58
59
60
61
import java.io.File;
import java.io.IOException;
 
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
 
public class JacksonTester {
  public static void main(String args[]){
   JacksonTester tester = new JacksonTester();
   try {
     Student student = new Student();
     student.setAge(10);
     student.setName("Mahesh");
     tester.writeJSON(student);
 
     Student student1 = tester.readJSON();
     System.out.println(student1);
 
   } catch (JsonParseException e) {
     e.printStackTrace();
   } catch (JsonMappingException e) {
     e.printStackTrace();
   } catch (IOException e) {
     e.printStackTrace();
   }
  }
 
  private void writeJSON(Student student) throws JsonGenerationException, JsonMappingException, IOException{
   ObjectMapper mapper = new ObjectMapper();
   mapper.writeValue(new File("student.json"), student);
  }
 
  private Student readJSON() throws JsonParseException, JsonMappingException, IOException{
   ObjectMapper mapper = new ObjectMapper();
   Student student = mapper.readValue(new File("student.json"), Student.class);
   return student;
  }
}
 
class Student {
  private String name;
  private int age;
  public Student(){}
  public String getName() {
   return name;
  }
  public void setName(String name) {
   this.name = name;
  }
  public int getAge() {
   return age;
  }
  public void setAge(int age) {
   this.age = age;
  }
  public String toString(){
   return "Student [ name: "+name+", age: "+ age+ " ]";
  }
}

驗證結果

使用javac編譯如下類:

復制代碼 代碼如下:

C:\Jackson_WORKSPACE>javac JacksonTester.java

現在運行jacksonTester看到的結果:
復制代碼 代碼如下:

C:\Jackson_WORKSPACE>java JacksonTester

驗證輸出
復制代碼 代碼如下:

Student [ name: Mahesh, age: 10 ]

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 白发在线视频播放观看免费 | yellow最新视频2019 | pppd在线播放 | 亚洲视频99 | 欧美精品一区二区在线观看播放 | 96萝莉 | 白丝h视频 | 91精品啪在线观看国产老湿机 | 欧美高清国产 | 国产网站免费在线观看 | 午夜影院免费体验 | 啊啊啊好大好爽视频 | 我的家教老师 | 亚洲国产成人久久综合一区 | gayxxx视频| 国产婷婷高清在线观看免费 | 午夜伦理:伦理片 | 亚洲 日韩 在线 国产 视频 | 2020国语对白露脸 | 欧美色成人tv在线播放 | 日本伊人色 | 免费视频精品一区二区 | 免费人成在线观看视频播放 | 亚洲第一综合网 | 东北疯狂xxxxbbbb中国 | 国产精品免费小视频 | 国产一区日韩二区欧美三 | 免费人成在线观看69式小视频 | 高h肉爽文农民工 | 午夜一区二区三区 | 毛片大全免费看 | 日b视频免费 | 精品综合久久久久久88小说 | 韩国久播影院理论片不卡影院 | 青青草99热这里都是精品 | 免费福利资源站在线视频 | 干美女在线视频 | 欧美一级在线播放 | 国产成人精品午夜免费 | 国产日产在线观看 | 亚洲成人视屏 |