這是本文件的舊版!
Jackson - Hello World
Introduction
本篇內容展示Jackson的基本功能-將物件轉為json與xml格式。由於內容簡單,看程式碼就知道該怎麼做,不多做說明。
Ivy.xml
相依函式庫使用以下四個項目:
<dependency org="com.fasterxml.jackson.core" name="jackson-core" rev="latest.integration" conf="default->default(*)" /> <dependency org="com.fasterxml.jackson.core" name="jackson-annotations" rev="latest.integration" conf="default->default(*)" /> <dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="latest.integration" conf="default->default(*)" /> <dependency org="com.fasterxml.jackson.dataformat" name="jackson-dataformat-xml" rev="latest.integration" conf="default->default(*)" />
Source Object
User類別是此範例中,要轉為json與xml格式的目標。在mID與mPasswd成員變數上,使用了JsonProperty annotation去描述結果要呈現的欄位名稱。以json為例,mID顯示的欄位名稱即為id;以xml為例,mID的標籤名稱為id:
package org.tonylin.practice.jackson; import com.fasterxml.jackson.annotation.JsonProperty; public class User { @JsonProperty(value="id") private String mID; @JsonProperty(value="passwd") private String mPasswd; public String getmID() { return mID; } public void setID(String aID) { this.mID = aID; } public String getPasswd() { return mPasswd; } public void setPasswd(String aPasswd) { this.mPasswd = aPasswd; } }
Convert to json
@Test public void testJsonGenerator() throws IOException { ObjectMapper mapper = new ObjectMapper(); JsonGenerator generator = null; try { generator = mapper.getFactory().createGenerator(System.out); User u = new User(); u.setID("user"); u.setPasswd("123456"); generator.writeObject(u); } finally { closeStream(generator); } } private void closeStream(Closeable aCloseable){ if (aCloseable != null) try { aCloseable.close(); } catch (IOException e) { } }Output:
{"id":"user","passwd":"123456"}
Convert to xml
@Test public void testXmlGenerator() throws IOException { XmlMapper mapper = new XmlMapper(); JsonGenerator generator = null; try { generator = mapper.getFactory().createGenerator(System.out); User u = new User(); u.setID("user"); u.setPasswd("123456"); generator.writeObject(u); } finally { closeStream(generator); } }Output:
<User xmlns=""><id>user</id><passwd>123456</passwd></User>