<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Jackson 將對象轉換為 json 并將 json 轉換為對象 > 原文: [https://howtodoinjava.com/jackson/jackson-convert-object-to-from-json/](https://howtodoinjava.com/jackson/jackson-convert-object-to-from-json/) **Jackson** *將對象轉換為 JSON* 示例,*將 json 轉換為對象*示例。 學習使用 jackson `objectmapper`從 json 字符串填充 Java 對象,并從 java 對象寫入 json 字符串。 Jackson 用于**將 Java 對象轉換為 json** ,而**則將 json 轉換為 Java 對象**。 在這個快速的 **jackson 教程**中,我給出了將 Java 對象以編程方式轉換為 json 的示例。 ```java Table of Contents 1\. Jackson maven dependency 2\. Convert Java object to JSON 3\. Pretty print JSON 4\. Convert JSON to Java object ``` 在進入代碼示例之前,讓我們定義一個簡單的 pojo 類,我們將在此示例中使用該類進行轉換。 ```java public class Employee { private Integer id; private String firstName; private String lastName; public Employee(){ } public Employee(Integer id, String firstName, String lastName, Date birthDate){ this.id = id; this.firstName = firstName; this.lastName = lastName; } //Getters and setters @Override public String toString() { return "Employee [id=" + id + ", firstName=" + firstName + ", " + "lastName=" + lastName + "]"; } } ``` ## 1.Jackson 依賴 您可以通過兩種方式添加 Jackson 依賴項,具體取決于您的項目類型。 #### 1.1 基于 Maven 的項目 在`pom.xml`文件中添加以下依賴項。 ```java <dependencies> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.6</version> </dependency> </dependencies> ``` #### 1.2 對于 ANT 或其他項目類型 對于非 Maven 用例,可以從 [Maven 中央倉庫](https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/)下載 jar。 ## 2.Jackson `ObjectMapper` `ObjectMapper`是用于數據綁定的主要 API。 它帶有幾種讀取器/寫入器方法,以執行從 Java 到 JSON 的轉換。 它將使用`JsonParser`和`JsonGenerator`的實例來實現 JSON 的實際讀取/寫入。 #### 2.1 將 json 轉換為對象的語法 使用以下示例語法讀取 JSON 并填充 Java 對象。 ```java ObjectMapper mapper = new ObjectMapper(); Object value = mapper.readValue(jsonSource , javaObject); ``` * `jsonSource` – 將獲取 json 字符串的輸入源。 * `javaObject` – 需要填充的目標 Java 對象。 #### 2.2 將對象轉換為 json 的語法 使用以下示例語法將 Java 對象寫入 json 字符串。 ```java ObjectMapper mapper = new ObjectMapper(); Object value = mapper.writeValue(jsonTarget, javaObject); ``` * `jsonTarget` – 將寫入 json 字符串的輸出目標。 * `javaObject` – 需要轉換為 json 的源 Java 對象。 ## 3\. Jackson 將對象轉換為 JSON 要轉換雇員對象并將其寫入某個文件,可以使用以下代碼。 ```java package test.jackson; import java.io.File; import java.io.IOException; import java.util.Date; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class JavaToJSONExample { public static void main(String[] args) { @SuppressWarnings("deprecation") Employee employee = new Employee(1, "Lokesh", "Gupta", new Date(1981,8,18)); ObjectMapper mapper = new ObjectMapper(); try { mapper.writeValue(new File("c://temp/employee.json"), employee); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } ``` 程序輸出。 ```java {"id":1,"firstName":"Lokesh","lastName":"Gupta"} ``` ## 4\. Jackson 精美打印 JSON 輸出 如果看上面的輸出,那么寫在文本文件中的輸出是非常原始的并且沒有格式化。 您可以使用`writerWithDefaultPrettyPrinter`而不是`defaultPrettyPrintingWriter()`實例編寫格式化的 JSON 內容,如下所示: ```java package test.jackson; import java.io.File; import java.io.IOException; import java.util.Date; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class JavaToPrettyJSONExample { public static void main(String[] args) { @SuppressWarnings("deprecation") Employee employee = new Employee(1, "Lokesh", "Gupta", new Date(1981,8,18)); ObjectMapper mapper = new ObjectMapper(); try { mapper.defaultPrettyPrintingWriter().writeValue(new File("c://temp/employee.json"), employee); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } ``` 程序輸出: ```java { "id" : 1, "firstName" : "Lokesh", "lastName" : "Gupta" } ``` ## 5\. Jackson 將 JSON 轉換為 Java 對象 要將 json 字符串轉換為 java 對象(例如`Employee`對象),請使用以下代碼: ```java package test.jackson; import java.io.File; import java.io.IOException; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; public class JSONToJavaExample { public static void main(String[] args) { Employee employee = null; ObjectMapper mapper = new ObjectMapper(); try { employee = mapper.readValue(new File("c://temp/employee.json"), Employee.class); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println(employee); } } ``` 程序輸出: ```java Employee [id=1, firstName=Lokesh, lastName=Gupta] ``` 確保在 POJO 類中定義了默認的構造器(例如,本例中為`Employee.java`)。 Jackson 使用默認構造器通過反射來創建 Java 類的實例。 如果沒有提供默認的構造器,那么您將在運行時得到`JsonMappingException`。 學習愉快!
                  <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>

                              哎呀哎呀视频在线观看