json,xml,javabean之間的轉換
工作中經常要用到Json、JavaBean、Xml之間的相互轉換,用到了很多種方式,這裡做下總結,以供參考。
現在主流的轉換工具有json-lib、jackson、fastjson等,我為大家一一做簡單介紹,主要還是以程式碼形式貼出如何簡單應用這些工具的,更多高階功能還需大家深入研究。
首先是json-lib,算是很早的轉換工具了,用的人很多,說實在現在完全不適合了,缺點比較多,依賴的第三方實在是比較多,效率低下,API也比較繁瑣,說他純粹是因為以前的老專案很多人都用到它。不廢話,開始上程式碼。
需要的maven依賴:
-
<!-- for json-lib -->
- <dependency>
- <groupId>net.sf.json-lib</groupId>
- <artifactId>json-lib</artifactId>
- <version>2.4</version>
- <classifier>jdk15</classifier>
- </dependency>
- <dependency>
-
<groupId>xom</groupId>
- <artifactId>xom</artifactId>
- <version>1.1</version>
- </dependency>
- <dependency>
- <groupId>xalan</groupId>
- <artifactId>xalan</artifactId>
- <version>2.7.1</version>
- </dependency>
使用json-lib實現多種轉換
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.Map.Entry;
- import javax.swing.text.Document;
- import net.sf.ezmorph.Morpher;
- import net.sf.ezmorph.MorpherRegistry;
- import net.sf.ezmorph.bean.BeanMorpher;
- import net.sf.ezmorph.object.DateMorpher;
- import net.sf.json.JSON;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import net.sf.json.JSONSerializer;
- import net.sf.json.JsonConfig;
- import net.sf.json.processors.JsonValueProcessor;
- import net.sf.json.util.CycleDetectionStrategy;
- import net.sf.json.util.JSONUtils;
- import net.sf.json.xml.XMLSerializer;
- /**
- * json-lib utils
- * @author magic_yy
- * @see json-lib.sourceforge.net/
- * @see https://github.com/aalmiray/Json-lib
- *
- */
- publicclass JsonLibUtils {
- publicstatic JsonConfig config = new JsonConfig();
- static{
- config.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);//忽略迴圈,避免死迴圈
- config.registerJsonValueProcessor(Date.class, new JsonValueProcessor() {//處理Date日期轉換
- @Override
- public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {
- SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date d=(Date) arg1;
- return sdf.format(d);
- }
- @Override
- public Object processArrayValue(Object arg0, JsonConfig arg1) {
- returnnull;
- }
- });
- }
- /**
- * java object convert to json string
- */
- publicstatic String pojo2json(Object obj){
- return JSONObject.fromObject(obj,config).toString();//可以用toString(1)來實現格式化,便於閱讀
- }
- /**
- * array、map、Javabean convert to json string
- */
- publicstatic String object2json(Object obj){
- return JSONSerializer.toJSON(obj).toString();
- }
- /**
- * xml string convert to json string
- */
- publicstatic String xml2json(String xmlString){
- XMLSerializer xmlSerializer = new XMLSerializer();
- JSON json = xmlSerializer.read(xmlString);
- return json.toString();
- }
- /**
- * xml document convert to json string
- */
- publicstatic String xml2json(Document xmlDocument){
- return xml2json(xmlDocument.toString());
- }
- /**
- * json string convert to javaBean
- * @param <T>
- */
- @SuppressWarnings("unchecked")
- publicstatic <T> T json2pojo(String jsonStr,Class<T> clazz){
- JSONObject jsonObj = JSONObject.fromObject(jsonStr);
- T obj = (T) JSONObject.toBean(jsonObj, clazz);
- return obj;
- }
- /**
- * json string convert to map
- */
- publicstatic Map<String,Object> json2map(String jsonStr){
- JSONObject jsonObj = JSONObject.fromObject(jsonStr);
- Map<String,Object> result = (Map<String, Object>) JSONObject.toBean(jsonObj, Map.class);
- return result;
- }
- /**
- * json string convert to map with javaBean
- */
- publicstatic <T> Map<String,T> json2map(String jsonStr,Class<T> clazz){
- JSONObject jsonObj = JSONObject.fromObject(jsonStr);
- Map<String,T> map = new HashMap<String, T>();
- Map<String,T> result = (Map<String, T>) JSONObject.toBean(jsonObj, Map.class, map);
- MorpherRegistry morpherRegistry = JSONUtils.getMorpherRegistry();
- Morpher dynaMorpher = new BeanMorpher(clazz,morpherRegistry);
-
相關推薦
json,xml,javabean之間的轉換
工作中經常要用到Json、JavaBean、Xml之間的相互轉換,用到了很多種方式,這裡做下總結,以供參考。 現在主流的轉換工具有json-lib、jackson、fastjson等,我為大家一一做簡單介紹,主要還是以程式碼形式貼出如何簡單應用這些工具的,更多高
修改tomcat部署下,專案配置(涉及properties,xml,zip,war之間相互轉換修改)
思路:傳入tomcat部署路徑, 1,遍歷tomcat下所有的資料夾,因為要修改 的檔案都是固定,所以根據傳入路徑就能拼裝要修改的檔案。 2,像1的解決思路,可能導致tomcat不斷在啟動,因為檔案在修改。 所以又想到,將要修改的war包改成Zip,因為其結構都一樣
python---基礎知識回顧(四)(模塊sys,os,random,hashlib,re,json,xml,shutil,configparser,logging,datetime,time,集合,堆,雙端隊列,其他)
ID 正常 空值 字符 預測 platform OS normal 生成 前提:dir,__all__,help,__doc__,__file__ dir:可以用來查看模塊中的所有特性(函數,類,變量等) >>> import copy >>
Android 圖片Bitmap,drawable,res資源圖片之間轉換
圖形 oid ott tor new phi mpat from vertical 一、知識介紹 ①res資源圖片是放在項目res文件下的資源圖片 ②BitMap位圖,一般文件後綴為BMP,需要編碼器編碼,如RGB565,RGB8888等。一種逐像素的顯示對象,其執
FastJson對於JSON格式字符串、JSON對象及JavaBean之間的相互轉換
enc ring 也有 object 代碼 string () gets 技術 fastJson對於json格式字符串的解析主要用到了一下三個類: JSON:fastJson的解析器,用於JSON格式字符串與JSON對象及javaBean之間的轉換。 JSONObject:
JOSN,XML,MAP相互轉換,MAP和Bean轉換
直接貼程式碼 JOSN,XML,MAP相互轉換 import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.util.ArrayList; import j
常用模組之 shutil,json,pickle,shelve,xml,configparser
一、shutil 高階的檔案、資料夾、壓縮包 處理模組 高階的 檔案、資料夾、壓縮包 處理模組 shutil.copyfileobj(fsrc, fdst[, length]) 將檔案內容拷貝到另一個檔案中 import shutil shutil.copyfileobj(o
Python_基礎_(模組,time,random,os,sys,json,shelve,xml,序列化反序列化)
一,Import的基本用法 import 1.執行對應的檔案 2.引入變數名 3.當一個檔案被import,索貝import中的程式碼會被執行一遍,例如當 import cal ##cla中有inport("xxx"),則會輸出 ## Import引用方法
itk 讀取影象,兩種格式之間轉換
/************************************************************************ 控制檯執行程式 輸入: 程式名稱
Unity資料儲存(二進位制,xml,json)
//二進位制方法:存檔和讀檔 private void SaveByBin() { //序列化過程(將Save物件轉換為位元組流) //建立Save物件並儲存當前遊戲狀態 Save save = CreateS
Spring-batch學習總結(3)—ItemReader普通文件,數據庫,XML,多文件數據讀取
調用 configure sco value getcount asc ash rst desc Spring-Batch學習總結(3)——如何數據輸入一.ItemReader概述1.ItemReader:提供數據的接口2.在這個接口中只有一個方法read(),它讀取一個數
簡略整理一下RPC、WebService、Restful、Json、Xml這些概念之間的關係
RPC有2層含義: (1) (協議層)編碼方式 (2) (傳輸層)傳輸方式 RPC 協議層\傳
IDEA用Maven外掛生成Mybatis的mapper,xml,bean
一、專案下建好資料夾 二、generatorConfig.xml檔案 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ge
xhtml,xml,html,和dhtml的關係和區別
HTML是一種基本的WEB網頁設計語言,XHTML是一個基於XML的置標語言,看起來與HTML有些相象,只有一些小的但重要的區別,XHTML就是一個扮演著類似HTML的角色的XML,所以,本質上說,XHTML是一個過渡技術,結合了XML(有幾分)的強大功能及HTML(大多數)的簡單特性。 2000年底,國
FastJson中JsonArray、JsonObject、json格式字串、javabean之間相互轉化
package com.kenny; import java.awt.print.Book; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON; imp
轉:json和list、bean之間轉換總結
//方法一,將json解析後賦給單獨的元素 String jstr="{'json':'jsonvalue','bool':true,'int':1,'double':'20.5'}";JSONObject json=JSONObject.
XStream實現xml和java物件之間的互相轉換(包括對屬性,別名,下劃線_的處理),同理JSON也可以
首先去官網下載響應JAR包 最少需要兩個jar包,一個xstream.jar,一個是xmlpull.jar 首先來看下java物件到xml的轉換 package xml; class PhoneNumber { private int code;
Json,String,Map之間的轉換
object decode rom urlencode json sub utf-8 encoder 包含 前提是String的格式是map或json類型的 String 轉Json JSONObject jasonObject = JSONObject.fromObj
Json,String,Map 三種資料之間的轉換
在處理資料時,遇到將map、json儲存到本,用的時候再取出來,儲存的時候無疑字串是最方便,取出來就需要處理一下 所以: 首先要保證String字串裡面是資料的格式是map或json型別的 String和Json 之間的轉換 : String -->
解決JSON Lib, XML轉JSON字串不要namespace,以及當xml中有Type屬性時轉換成json會丟失問題
XMLSerializer xmlSerializer = new XMLSerializer(); JSON json = xmlSerializer.read(xml); return json.toString(3); 以上程式碼在xmll轉成json字串後,