国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Jackson 框架,輕易轉換JSON

2019-11-08 02:36:21
字體:
來源:轉載
供稿:網友

Jackson可以輕松的將java對象轉換成json對象和xml文檔,同樣也可以將json、xml轉換成Java對象。 相比json-lib框架,Jackson所依賴的jar包較少,簡單易用并且性能也要相對高些。而且Jackson社區相對比較活躍,更新速度也比較快。 一、準備工作

1、 下載依賴庫jar包

Jackson的jar all下載地址:http://mvnrepository.com/search?q=jackson 三個jackson全要

然后在工程中導入這個jar包即可開始工作

官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes

因為下面的程序是用junit測試用例運行的,所以還得添加junit的jar包。版本是junit_4.12.0

如果你需要轉換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;

/** * Jackson 將java對象轉換成JSON字符串,也可以將JSON字符串轉換成java對象 */ @SupPRessWarnings(“unchecked”) public class JacksonTest { private JsonGenerator jsonGenerator = null; private ObjectMapper objectMapper = null; private AccountBean bean = null;

@Beforepublic void init() { bean = new AccountBean(); bean.setAddress("china-PJzz"); bean.setEmail("853029463@QQ.com"); bean.setId(1); bean.setName("PJzz"); objectMapper = new ObjectMapper(); try { jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8); } catch (IOException e) { e.printStackTrace(); }}@Afterpublic 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@Overridepublic 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、setterpublic Birthday() {}@Overridepublic String toString() { return this.birthday;}

} 二、Java對象轉換成JSON

1、 JavaBean(Entity/Model)轉換成JSON

/** * 將java對象轉換成json字符串 */ @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的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字符串

/** * 將map轉換成json字符串 */ @Test public void writeMapJSON() { try { Map


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 醴陵市| 宁化县| 平武县| 桓仁| 绥化市| 台前县| 双城市| 商南县| 平定县| 常熟市| 广平县| 怀安县| 玉田县| 阿勒泰市| 香河县| 景泰县| 基隆市| 大竹县| 延长县| 通榆县| 固原市| 廊坊市| 铁岭市| 永德县| 吕梁市| 南漳县| 北宁市| 肥东县| 招远市| 南靖县| 班戈县| 灌阳县| 大埔区| 灵宝市| 晋城| 寿光市| 甘孜县| 八宿县| 八宿县| 盐津县| 雷波县|