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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # JAXB – 在 Java 中編組和解組`HashMap` > 原文: [https://howtodoinjava.com/jaxb/jaxb-example-marshalling-and-unmarshalling-hashmap-in-java/](https://howtodoinjava.com/jaxb/jaxb-example-marshalling-and-unmarshalling-hashmap-in-java/) 我們知道 [JAXB(用于 XML 綁定的 Java 架構)](https://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding "jaxb")允許 Java 開發人員將 Java 類映射到 XML 表示形式。 JAXB 提供了兩個主要功能:將 Java 對象編組為 XML 的能力和相反的功能,即將 XML 解組為 Java 對象的能力。 JAXB 主要用于實現 Web 服務或任何其他此類客戶端接口的應用,在該應用中,數據需要以 XML 格式(而不是 HTML 格式)傳輸,而對于可視客戶端(如 Web 瀏覽器)來說,HTML 格式是默認格式。 一個很好的例子是 facebook API。 Facebook 已通過 [RESTful Web 服務](//howtodoinjava.com/restful-web-service/ "resteasy tutorials")的形式通過一些開放的端點公開了其服務,您在其中單擊 URL 并發布了一些參數,而 API 以 xml 格式返回數據。 現在由您決定如何使用這些數據。 在本文中,我將舉一個**編組和解組`Map`對象**的示例,例如 [`HashMap`](//howtodoinjava.com/java/collections/how-hashmap-works-in-java/ "How hashmap works in java") 。 這些映射對象通常表示一些簡單鍵與復雜數據之間的映射。 ## 1)JAXB Maven 依賴關系 要運行 JAXB 示例,我們需要添加運行時依賴項,如下所示。 ```java <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.2.8-b01</version> </dependency> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.2-promoted-b65</version> </dependency> ``` ## 2)映射模型類 我創建了一個模型類“`Employee.java`”,它具有一些公開字段。 我想構建可以解析對象映射的代碼,其中鍵是序列碼,值是`Employee`對象本身。 ```java @XmlRootElement(name = "employee") @XmlAccessorType (XmlAccessType.FIELD) public class Employee { private Integer id; private String firstName; private String lastName; private double income; //Getters and Setters } ``` ```java import java.util.List; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement (name="employees") @XmlAccessorType(XmlAccessType.FIELD) public class EmployeeMap { private Map<Integer, Employee> employeeMap = new HashMap<Integer, Employee>(); public Map<Integer, Employee> getEmployeeMap() { return employeeMap; } public void setEmployeeMap(Map<Integer, Employee> employeeMap) { this.employeeMap = employeeMap; } } ``` ## 3)編組映射到 XML 的示例 **將 Java 映射編組或轉換為 xml** 表示形式的 Java 示例。 在下面的示例代碼中,我首先在控制臺中編寫員工映射,然后在文件中編寫。 ```java public static void main(String[] args) throws JAXBException { HashMap<Integer, Employee> map = new HashMap<Integer, Employee>(); Employee emp1 = new Employee(); emp1.setId(1); emp1.setFirstName("Lokesh"); emp1.setLastName("Gupta"); emp1.setIncome(100.0); Employee emp2 = new Employee(); emp2.setId(2); emp2.setFirstName("John"); emp2.setLastName("Mclane"); emp2.setIncome(200.0); map.put( 1 , emp1); map.put( 2 , emp2); //Add employees in map EmployeeMap employeeMap = new EmployeeMap(); employeeMap.setEmployeeMap(map); /******************** Marshalling example *****************************/ JAXBContext jaxbContext = JAXBContext.newInstance(EmployeeMap.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); jaxbMarshaller.marshal(employeeMap, System.out); jaxbMarshaller.marshal(employeeMap, new File("c:/temp/employees.xml")); } Output: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <employees> <employeeMap> <entry> <key>1</key> <value> <id>1</id> <firstName>Lokesh</firstName> <lastName>Gupta</lastName> <income>100.0</income> </value> </entry> <entry> <key>2</key> <value> <id>2</id> <firstName>John</firstName> <lastName>Mclane</lastName> <income>200.0</income> </value> </entry> </employeeMap> </employees> ``` ## 4)解組 XML 到映射的示例 Java 示例**將 xml 轉換為 Java 映射**對象。 讓我們看一下`EmployeeMap`類的示例。 ```java private static void unMarshalingExample() throws JAXBException { JAXBContext jaxbContext = JAXBContext.newInstance(EmployeeMap.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); EmployeeMap empMap = (EmployeeMap) jaxbUnmarshaller.unmarshal( new File("c:/temp/employees.xml") ); for(Integer empId : empMap.getEmployeeMap().keySet()) { System.out.println(empMap.getEmployeeMap().get(empId).getFirstName()); System.out.println(empMap.getEmployeeMap().get(empId).getLastName()); } } Output: Lokesh Gupta John Mclane ``` ## 5)源代碼下載 要下載以上示例的源代碼,請點擊以下鏈接。 [下載源碼](https://docs.google.com/file/d/0B7yo2HclmjI4TDNDR2phTVJLbkk/edit?usp=sharing "download jaxb map marshaling example source code") 學習愉快!
                  <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>

                              哎呀哎呀视频在线观看