Jackson轉換JSON例子
Jackson可以輕鬆的將Java物件轉換成json物件和xml文件,同樣也可以將json、xml轉換成Java物件。
相比json-lib框架,Jackson所依賴的jar包較少,簡單易用並且效能也要相對高些。而且Jackson社群相對比較活躍,更新速度也比較快。
一、準備工作
1、 下載依賴庫jar包
然後在工程中匯入這個jar包即可開始工作
因為下面的程式是用junit測試用例執行的,所以還得新增junit的jar包。版本是junit-4.2.8
如果你需要轉換xml,那麼還需要stax2-api.jar
2、 測試類基本程式碼如下
package com.hoo.test;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.node.JsonNodeFactory;
import org.codehaus.jackson.xml.XmlMapper;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.hoo.entity.AccountBean;
/**
* <b>function:</b>Jackson 將java物件轉換成JSON字串,也可以將JSON字串轉換成java物件
* jar-lib-version: jackson-all-1.6.2
* jettison-1.0.1
* @author hoojo
* @createDate 2010-11-23 下午04:54:53
* @file JacksonTest.java
* @package com.hoo.test
* @project Spring3
* @blog http://blog.csdn.net/IBM_hoojo
* @email [email protected]
* @version 1.0
*/
@SuppressWarnings("unchecked")
public class JacksonTest {
private JsonGenerator jsonGenerator = null;
private ObjectMapper objectMapper = null;
private AccountBean bean = null;
@Before
public void init() {
bean = new AccountBean();
bean.setAddress("china-Guangzhou");
bean.setEmail("[email protected]");
bean.setId(1);
bean.setName("hoojo");
objectMapper = new ObjectMapper();
try {
jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);
} catch (IOException e) {
e.printStackTrace();
}
}
@After
public void destory() {
try {
if (jsonGenerator != null) {
jsonGenerator.flush();
}
if (!jsonGenerator.isClosed()) {
jsonGenerator.close();
}
jsonGenerator = null;
objectMapper = null;
bean = null;
System.gc();
} catch (IOException e) {
e.printStackTrace();
}
}
}
3、 所需要的JavaEntity
package com.hoo.entity;
public class AccountBean {
private int id;
private String name;
private String email;
private String address;
private Birthday birthday;
//getter、setter
@Override
public String toString() {
return this.name + "#" + this.id + "#" + this.address + "#" + this.birthday + "#" + this.email;
}
}
Birthday
package com.hoo.entity;
public class Birthday {
private String birthday;
public Birthday(String birthday) {
super();
this.birthday = birthday;
}
//getter、setter
public Birthday() {}
@Override
public String toString() {
return this.birthday;
}
}
二、Java物件轉換成JSON
1、 JavaBean(Entity/Model)轉換成JSON
/**
* <b>function:</b>將java物件轉換成json字串
* @author hoojo
* @createDate 2010-11-23 下午06:01:10
*/
@Test
public void writeEntityJSON() {
try {
System.out.println("jsonGenerator");
//writeObject可以轉換java物件,eg:JavaBean/Map/List/Array等
jsonGenerator.writeObject(bean);
System.out.println();
System.out.println("ObjectMapper");
//writeValue具有和writeObject相同的功能
objectMapper.writeValue(System.out, bean);
} catch (IOException e) {
e.printStackTrace();
}
}
執行後結果如下:
jsonGenerator
{"address":"china-Guangzhou","name":"hoojo","id":1,"birthday":null,"email":"[email protected]"}
ObjectMapper
{"address":"china-Guangzhou","name":"hoojo","id":1,"birthday":null,"email":"[email protected]"}
上面分別利用JsonGenerator的writeObject方法和ObjectMapper的writeValue方法完成對Java物件的轉換,二者傳遞的引數及構造的方式不同;JsonGenerator的建立依賴於ObjectMapper物件。也就是說如果你要使用JsonGenerator來轉換JSON,那麼你必須建立一個ObjectMapper。但是你用ObjectMapper來轉換JSON,則不需要JSONGenerator。
objectMapper的writeValue方法可以將一個Java物件轉換成JSON。這個方法的引數一,需要提供一個輸出流,轉換後可以通過這個流來輸出轉換後的內容。或是提供一個File,將轉換後的內容寫入到File中。當然,這個引數也可以接收一個JSONGenerator,然後通過JSONGenerator來輸出轉換後的資訊。第二個引數是將要被轉換的Java物件。如果用三個引數的方法,那麼是一個Config。這個config可以提供一些轉換時的規則,過指定的Java物件的某些屬性進行過濾或轉換等。
2、 將Map集合轉換成Json字串
/**
* <b>function:</b>將map轉換成json字串
* @author hoojo
* @createDate 2010-11-23 下午06:05:26
*/
@Test
public void writeMapJSON() {
try {
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", bean.getName());
map.put("account", bean);
bean = new AccountBean();
bean.setAddress("china-Beijin");
相關推薦
Jackson轉換JSON例子
Jackson可以輕鬆的將Java物件轉換成json物件和xml文件,同樣也可以將json、xml轉換成Java物件。 相比json-lib框架,Jackson所依賴的jar包較少,簡單易用並且效能也要相對高些。而且Jackson社群相對比較活躍,更新速度也比較快。 一、準備工作 1、 下載依賴
struts2的fastjson,jackson轉換json簡單使用
println lte ebe mat tin over release led 逗號 一.Fastjson使用 1.導入fastjson.jar包 2.使用方法 對於對象和集合使用同樣的方法 使用JSON.toJSONString(對象)返回一個jso
Jackson 轉換JSON,SpringMVC ajax 輸出,當值為null或者空不輸出欄位@JsonInclude
當我們提供介面的時候, Ajax 返回的時候,當物件在轉換 JSON (序列化)的時候,值為Null 或者為“”的欄位還是輸出來了。看上去不優雅。 現在我敘述三種方式來控制這種情況。 註解的方式( @JsonInc
使用Jackson時轉換JSON時,日期格式設置
ges 技術 自定義 -c color orm jackson 解決 style 在我們使用jackjson時時間默認輸出如下: 輸出是一串時間戳,不符合我們的要求,所以想到jackjson對時間的處理有他默認的格式,然後網上搜集各種資料,得出一下方式可以解決 取消j
Jackson將json字符串轉換成泛型List
str json數組 std cer time stl cond exc obj 情景: 需求,需要做一個接口,請求體中的參數是string類型。 參數是一個批量的數據,json數組格式,所以需要把string的參數轉換成list類型。 參數如下: [ {
Jackson將json字符串轉換成List<JavaBean>
ray 註意 編譯 new pub gpo body get ont public final ObjectMapper mapper = new ObjectMapper(); public static void main(String[] args)
jackson實現json資料與物件, 集合之間的轉換
前面列舉了Gson和fastjson處理json格式資料的具體用法,以下介紹jackson如何簡單處理json格式資料,還是延用前面文章中的實體類Product. 使用jackso
Jackson使用:String 與物件互轉、Jackson 從 json 字串轉換出物件
一、從json字串轉換出物件 Pager類: import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties(ignoreUnknown=true) public class Pager
基於jackson的Json與物件的互相轉換
在JavaWeb開發中,經常會涉及到相關的json與物件的互相轉化問題,下面我就將其轉化的過程中可能遇到的情況一一寫出。 新增依賴 jackson依賴 <!--jackson--> <depend
Jackson 框架,輕易轉換JSON
Jackson可以輕鬆的將Java物件轉換成json物件和xml文件,同樣也可以將json、xml轉換成Java物件。 相比json-lib框架,Jackson所依賴的jar包較少,簡單易用並且效能也要相對高些。而且Jackson社群相對比較活躍,更新速度也
Jackson的Json轉換
public class JacksonJsonUtil { private static ObjectMapper mapper; /** * 獲取ObjectMapper例項 * @param createNew 方式:true,新例項;false,存在
Java 用Jackson進行json和object之間的轉換(並解決json中存在新增多餘欄位的問題)
1、新增jackson庫 如果是maven工程,需要在pom.xml中新增jackson的依賴: <dependency> <groupId>com.fasterxml.jackson.core</groupId>
高效解析json例子,Jackson框架
Jackson可以輕鬆的將Java物件轉換成json物件和xml文件,同樣也可以將json、xml轉換成Java物件。 相比json-lib框架,Jackson所依賴的jar包較少,簡單易用並且效能也要相對高些。而且Jackson社群相對比較活躍,更新速
一些json資料格式轉換的例子
question1:後臺接受到前臺的json格式的字串怎麼處理?public static void jsonToJAVA() { System.out.println("json字串轉java程式碼"); String jsonStr = "{\"password\":\
protobuf的簡單應用,json和protocol Buffer的轉換簡單例子
Protocol Buffers 是一種輕便高效的結構化資料儲存格式,可以用於結構化資料序列化,很適合做資料儲存或 RPC 資料交換格式。它可用於通訊協議、資料儲存等領域的語言無關、平臺無關、可擴充套件的序列化結構資料格式。目前提供了 C++、Java、Python 三種語言的 API。 簡介 什
使用Jackson操作Json
out expire imp 數據轉換 fresh ann .get app object 1.引入jasckson-core.jar,jackson-annotations.jar和jackson-databind.jar 2.因為沒有做從http獲取和提交json數
兩款JSON類庫Jackson與JSON-lib的性能對比(新增第三款測試)
border word ogg 收藏 一個 gen 每次 應用 googl 本篇文章主要介紹了"兩款JSON類庫Jackson與JSON-lib的性能對比(新增第三款測試)",主要涉及到兩款JSON類庫Jackson與JSON-lib的性能對比(新增第三款測試)方面的內容,
行列轉換的例子
char temp insert lec gin emp arch union declare IF OBJECT_ID(‘tempdb..#ABC‘) IS NOT NULL DROP TABLE #ABC create table #ABC (
JAVA對象轉換JSON
使用 itl user lis 實體類 美化 有限公司 jar 編輯 1. 把java 對象列表轉換為json對象數組,並轉為字符串 復制代碼 代碼如下: JSONArray array = JSONArray.fromObject(userlist); St
使用Redis和jackson操作json中遇到的坑
表數據 谷歌 這樣的 進行 結構 length 找到 sql 報道 前言(可以略過) 最近在開發一個智能電表的管理系統,與常規的面向業務的系統不同。智能電表特點是每30分鐘會向服務器發一次請求,報道自己目前的電表情況。然後服務器根據電表情況統計此電表的電量使用情況