Heim >Backend-Entwicklung >XML/RSS-Tutorial >Es wird das Java-Objekt-, Json- und XML-Konvertierungstool Jackson verwendet
Es ist sehr üblich, ein Objekt in einen String im Json-Format in Java-Projekten zu konvertieren. Es gibt viele Toolkits, die diese Anforderung erfüllen können, wie z. B. Gson, JSON-lib, Jackson und bald. In diesem Artikel wird hauptsächlich die Verwendung von Jackson vorgestellt. Neben der Konvertierung von Java-Objekten und JSON-Strings kann Jackson auch Java-Objekte in das XML-Format konvertieren. Es ist relativ einfach zu verwenden und gilt als relativ effizient.
Für Jacksons JAR-Paket können wir es aus der Maven-Ressourcenbibliothek herunterladen: http://www.php.cn/
Das erforderliche JAR-Paket lautet wie folgt, suchen Sie es einfach nach Namen und laden Sie es herunter.
Als nächstes benötigen wir eine Java-Klasse:
package com.csii.jackson.object; public class Book{ private String name; private int price; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public Book() { } public Book(String name,int price) { this.name = name; this.price = price; } @Override public String toString() { return "name:" + name +"; price:" + price; } }
1. Konvertieren Sie das Java-Objekt in einen Json-String:
@Test public void testGenJson() { ObjectMapper objMapper = new ObjectMapper(); Book book = new Book("Think in Java",100); try { jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8); jsonGen.writeObject(book); } catch (IOException e) { e.printStackTrace(); } }
Führen Sie die Testmethode aus, Konsolenausgabe:
{"name":"Think in Java","price":100}
2. Konvertieren Sie den Json-String in ein Java-Objekt:
/* * Json转Java对象 */ @Test public void testGenObjByJson() { ObjectMapper objMapper = new ObjectMapper(); String json = "{\"name\":\"Think in Java\",\"price\":100}"; try { Book book = objMapper.readValue(json, Book.class); System.out.println(book); } catch (IOException e) { e.printStackTrace(); } }
Da wir die Book-Klasse-toString-Methode neu geschrieben haben, führen Sie die aus Testmethode, Konsolenausgabe:
name:Think in Java; price:100
3. Java-Objekt in XML-Format konvertieren:
/* * Java对象转xml */ @Test public void testGenXml() { XmlMapper xmlMapper = new XmlMapper(); Book book = new Book("Think in Java",100); try { String xmlStr = xmlMapper.writeValueAsString(book); System.out.println(xmlStr); } catch (JsonProcessingException e) { e.printStackTrace(); } }
Führen Sie die Testmethode aus, Konsolenausgabe:
<Book xmlns=""><name>Think in Java</name><price>100</price></Book>
4. Konvertieren Sie die XML-Formatzeichenfolge in ein Java-Objekt:
/* * xml转Java对象 */ @Test public void testGenObjByXml() { XmlMapper xmlMapper = new XmlMapper(); String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>"; try { Book book = xmlMapper.readValue(xmlStr, Book.class); System.out.println(book); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Ausgabeinhalt:
name:Think in Java; price:100
Vollständiger Testfallcode:
package com.csii.jackson.test; import java.io.IOException; import org.junit.Test; import com.csii.jackson.object.Book; import com.fasterxml.jackson.core.JsonEncoding; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; @SuppressWarnings("deprecation") public class JsonTest { private JsonGenerator jsonGen = null; /* * Java对象转 Json */ @Test public void testGenJson() { ObjectMapper objMapper = new ObjectMapper(); Book book = new Book("Think in Java",100); try { jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8); jsonGen.writeObject(book); } catch (IOException e) { e.printStackTrace(); } } /* * Json转Java对象 */ @Test public void testGenObjByJson() { ObjectMapper objMapper = new ObjectMapper(); String json = "{\"name\":\"Think in Java\",\"price\":100}"; try { Book book = objMapper.readValue(json, Book.class); System.out.println(book); } catch (IOException e) { e.printStackTrace(); } } /* * Java对象转xml */ @Test public void testGenXml() { XmlMapper xmlMapper = new XmlMapper(); Book book = new Book("Think in Java",100); try { String xmlStr = xmlMapper.writeValueAsString(book); System.out.println(xmlStr); } catch (JsonProcessingException e) { e.printStackTrace(); } } /* * xml转Java对象 */ @Test public void testGenObjByXml() { XmlMapper xmlMapper = new XmlMapper(); String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>"; try { Book book = xmlMapper.readValue(xmlStr, Book.class); System.out.println(book); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
Es kommt sehr häufig vor Konvertieren Sie ein Objekt in einen String im JSON-Format in Java-Projekten. Es gibt viele Toolkits, die diese Anforderung erfüllen können, wie z. B. Gson, JSON-lib, Jackson usw. In diesem Artikel wird hauptsächlich die Verwendung von Jackson vorgestellt. Neben der Konvertierung von Java-Objekten und JSON-Strings kann Jackson auch Java-Objekte in das XML-Format konvertieren. Es ist relativ einfach zu verwenden und gilt als relativ effizient.
Für Jacksons JAR-Paket können wir es aus der Maven-Ressourcenbibliothek herunterladen: http://www.php.cn/
Das erforderliche JAR-Paket lautet wie folgt, suchen Sie es einfach nach Namen und laden Sie es herunter.
Als nächstes benötigen wir eine Java-Klasse:
package com.csii.jackson.object; public class Book{ private String name; private int price; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public Book() { } public Book(String name,int price) { this.name = name; this.price = price; } @Override public String toString() { return "name:" + name +"; price:" + price; } }
1. Konvertieren Sie das Java-Objekt in einen Json-String:
@Test public void testGenJson() { ObjectMapper objMapper = new ObjectMapper(); Book book = new Book("Think in Java",100); try { jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8); jsonGen.writeObject(book); } catch (IOException e) { e.printStackTrace(); } }
Führen Sie die Testmethode aus, Konsolenausgabe:
{"name":"Think in Java","price":100}
2. Konvertieren Sie den Json-String in ein Java-Objekt:
/* * Json转Java对象 */ @Test public void testGenObjByJson() { ObjectMapper objMapper = new ObjectMapper(); String json = "{\"name\":\"Think in Java\",\"price\":100}"; try { Book book = objMapper.readValue(json, Book.class); System.out.println(book); } catch (IOException e) { e.printStackTrace(); } }
Da wir die Book-Klasse-toString-Methode neu geschrieben haben, führen Sie die aus Testmethode, Konsolenausgabe:
name:Think in Java; price:100
3. Java-Objekt in XML-Format konvertieren:
/* * Java对象转xml */ @Test public void testGenXml() { XmlMapper xmlMapper = new XmlMapper(); Book book = new Book("Think in Java",100); try { String xmlStr = xmlMapper.writeValueAsString(book); System.out.println(xmlStr); } catch (JsonProcessingException e) { e.printStackTrace(); } }
Führen Sie die Testmethode aus, Konsolenausgabe:
<Book xmlns=""><name>Think in Java</name><price>100</price></Book>
4. Konvertieren Sie die XML-Formatzeichenfolge in ein Java-Objekt:
/* * xml转Java对象 */ @Test public void testGenObjByXml() { XmlMapper xmlMapper = new XmlMapper(); String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>"; try { Book book = xmlMapper.readValue(xmlStr, Book.class); System.out.println(book); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
Ausgabeinhalt:
name:Think in Java; price:100
Vollständiger Testfallcode:
package com.csii.jackson.test; import java.io.IOException; import org.junit.Test; import com.csii.jackson.object.Book; import com.fasterxml.jackson.core.JsonEncoding; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.xml.XmlMapper; @SuppressWarnings("deprecation") public class JsonTest { private JsonGenerator jsonGen = null; /* * Java对象转 Json */ @Test public void testGenJson() { ObjectMapper objMapper = new ObjectMapper(); Book book = new Book("Think in Java",100); try { jsonGen = objMapper.getJsonFactory().createJsonGenerator(System.out,JsonEncoding.UTF8); jsonGen.writeObject(book); } catch (IOException e) { e.printStackTrace(); } } /* * Json转Java对象 */ @Test public void testGenObjByJson() { ObjectMapper objMapper = new ObjectMapper(); String json = "{\"name\":\"Think in Java\",\"price\":100}"; try { Book book = objMapper.readValue(json, Book.class); System.out.println(book); } catch (IOException e) { e.printStackTrace(); } } /* * Java对象转xml */ @Test public void testGenXml() { XmlMapper xmlMapper = new XmlMapper(); Book book = new Book("Think in Java",100); try { String xmlStr = xmlMapper.writeValueAsString(book); System.out.println(xmlStr); } catch (JsonProcessingException e) { e.printStackTrace(); } } /* * xml转Java对象 */ @Test public void testGenObjByXml() { XmlMapper xmlMapper = new XmlMapper(); String xmlStr = "<Book><name>Think in Java</name><price>100</price></Book>"; try { Book book = xmlMapper.readValue(xmlStr, Book.class); System.out.println(book); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
Das Obige ist der Inhalt Wird vom Java-Objekt, Json und dem XML-Konvertierungstool Jackson verwendet. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!