<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Gson – 序列化和反序列化包含自定義對象的`HashMap` > 原文: [https://howtodoinjava.com/gson/gson-serialize-deserialize-hashmap/](https://howtodoinjava.com/gson/gson-serialize-deserialize-hashmap/) 了解使用 Google [Gson](https://howtodoinjava.com/apache-commons/google-gson-tutorial-convert-java-object-to-from-json/) 庫對`HashMap`進行序列化。 另請學習**使用 Gson 將 JSON** 字符串反序列化為包含自定義對象的[`HashMap`](https://howtodoinjava.com/java-hashmap/),以便將字段值復制到適當的[通用類型](https://howtodoinjava.com/java/generics/complete-java-generics-tutorial/)中。 這些轉換可用于創建`HashMap`的[深層克隆。](https://howtodoinjava.com/java/collections/hashmap/shallow-deep-copy-hashmap/) ## 1.將包含通用類型的`HashMap`序列化為 JSON 使用 Gson 將`HashMap`序列化為 JSON 很容易。 轉換`HashMap`之后,只需使用`gson.toJson()`方法即可獲取 JSON 字符串。 使用 Gson 將`HashMap`轉換為 JSON 字符串的 Java 程序。 ```java HashMap<Integer, Employee> employeeMap = new HashMap<>(); employeeMap.put(1, new Employee(1l, "Alex", LocalDate.of(1990, 01, 01))); employeeMap.put(2, new Employee(2l, "Bob", LocalDate.of(1990, 02, 01))); //Deep clone Gson gson = new Gson(); String jsonString = gson.toJson(employeeMap); ``` ```java { "1": { "id": 1, "name": "Alex", "dob": { "year": 1990, "month": 1, "day": 1 } }, "2": { "id": 2, "name": "Bob", "dob": { "year": 1990, "month": 2, "day": 1 } } } ``` 此處的`Employee`類為: ```java import java.time.LocalDate; public class Employee implements Comparable<Employee>{ private Long id; private String name; private LocalDate dob; public Employee(Long id, String name, LocalDate dob) { super(); this.id = id; this.name = name; this.dob = dob; } @Override public int compareTo(Employee o) { return this.getId().compareTo(o.getId()); } //Getters and setters @Override public String toString() { return "Employee [id=" + id + ", name=" + name + ", dob=" + dob + "]"; } } ``` ## 2.將 JSON 轉換為包含自定義對象的`HashMap` 要將 JSON 字符串反序列化回`HashMap`涉及兩個步驟: 1. 創建代表通用類型的[`com.google.gson.reflect.TypeToken`](https://static.javadoc.io/com.google.code.gson/gson/2.6.2/com/google/gson/reflect/TypeToken.html)。 它強制客戶端創建此類的子類,即使在運行時也可以檢索類型信息。 2. 使用`gson.fromJson()`方法從 JSON 字符串獲取`HashMap`。 Java 程序將 JSON 解析為包含通用類型的`HashMap`對象。 ```java import java.lang.reflect.Type; import java.time.LocalDate; import java.util.HashMap; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; public class GsonExample { public static void main(String[] args) { HashMap<Integer, Employee> employeeMap = new HashMap<>(); employeeMap.put(1, new Employee(1l, "Alex", LocalDate.of(1990, 01, 01))); employeeMap.put(2, new Employee(2l, "Bob", LocalDate.of(1990, 02, 01))); //Deep clone Gson gson = new Gson(); String jsonString = gson.toJson(employeeMap); Type type = new TypeToken<HashMap<Integer, Employee>>(){}.getType(); HashMap<Integer, Employee> clonedMap = gson.fromJson(jsonString, type); System.out.println(clonedMap); } } ``` ```java {1=Employee [id=1, name=Alex, dob=1990-01-01], 2=Employee [id=2, name=Bob, dob=1990-02-01]} ``` 學習愉快!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看