Heim > Backend-Entwicklung > XML/RSS-Tutorial > Es wird das Java-Objekt-, Json- und XML-Konvertierungstool Jackson verwendet

Es wird das Java-Objekt-, Json- und XML-Konvertierungstool Jackson verwendet

黄舟
Freigeben: 2017-02-22 15:02:36
Original
3728 Leute haben es durchsucht


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.

Es wird das Java-Objekt-, Json- und XML-Konvertierungstool Jackson verwendet

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

}
Nach dem Login kopieren
Nach dem Login kopieren

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();
        } 
    }
Nach dem Login kopieren

Führen Sie die Testmethode aus, Konsolenausgabe:

{"name":"Think in Java","price":100}
Nach dem Login kopieren
Nach dem Login kopieren

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();
        }  
    }
Nach dem Login kopieren
Nach dem Login kopieren

Da wir die Book-Klasse-toString-Methode neu geschrieben haben, führen Sie die aus Testmethode, Konsolenausgabe:

name:Think in Java; price:100
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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();
        }
    }
Nach dem Login kopieren
Nach dem Login kopieren

Führen Sie die Testmethode aus, Konsolenausgabe:

<Book xmlns=""><name>Think in Java</name><price>100</price></Book>
Nach dem Login kopieren
Nach dem Login kopieren

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();
        }

    }
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabeinhalt:

name:Think in Java; price:100
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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();
        }

    }
}
Nach dem Login kopieren
Nach dem Login kopieren

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.

Es wird das Java-Objekt-, Json- und XML-Konvertierungstool Jackson verwendet

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

}
Nach dem Login kopieren
Nach dem Login kopieren

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();
        } 
    }
Nach dem Login kopieren

Führen Sie die Testmethode aus, Konsolenausgabe:

{"name":"Think in Java","price":100}
Nach dem Login kopieren
Nach dem Login kopieren

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();
        }  
    }
Nach dem Login kopieren
Nach dem Login kopieren

Da wir die Book-Klasse-toString-Methode neu geschrieben haben, führen Sie die aus Testmethode, Konsolenausgabe:

name:Think in Java; price:100
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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();
        }
    }
Nach dem Login kopieren
Nach dem Login kopieren

Führen Sie die Testmethode aus, Konsolenausgabe:

<Book xmlns=""><name>Think in Java</name><price>100</price></Book>
Nach dem Login kopieren
Nach dem Login kopieren

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();
        }

    }
Nach dem Login kopieren
Nach dem Login kopieren

Ausgabeinhalt:

name:Think in Java; price:100
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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();
        }

    }
}
Nach dem Login kopieren
Nach dem Login kopieren

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


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage