Java中將xml檔案轉化為json的兩種方式

2021-08-04 13:26:53 字數 1452 閱讀 8267

最近一直沒有時間寫部落格,忙著找房子,天天來回折騰,光地鐵費就花了不少,最後綜合各種因素考慮,決定沙河高教園,哈哈,沒錯,別人都是越搬離公司越近,我是越搬越遠,但是直覺告訴我應該沒有錯,昨天晚上剛搬完家,收拾收拾終於安定了,坑爹的二房東再見,以後如果不出什麼特殊情況的話應該是有時間寫部落格了。。。。

好了廢話不多說,進入正題,最近有個需求,要將xml轉json之後儲存在redis中,找來找去發現整體來說有兩種方法,使用json-lib包中的net.sf.json或者使用org.json,這裡將兩種方式的實現**寫下來記錄一下,以後方便拿來直接用了,省的來回找了。

實現**具體見下

public class test  catch (ioexception e)     

} public static void main(string args)

}

簡單解釋下該**,

1 這裡通過class的getresourceasstream方法獲得指定檔案的輸入流,這裡指定引數沒有帶/,表示test類與xml檔案在同一級目錄下,如果有/那麼是從根目錄進行獲取的,

2 之後利用ioutils的tostring方法將該輸入流轉化為xml格式的字串輸出,呼叫xmlserializer的read方法接受xml格式的字串,將其轉化為json物件

3 這裡實際上輸出json物件和呼叫json物件的tostring方法輸出的形式在控制台展示的是一樣的

這裡隨便寫了乙個xml檔案

man

18

對應的輸出的json

這裡只需要給出乙個符合標準格式的xml檔案即可,十分方便,如果是乙個標籤的屬性那麼會加上字首@符號

public class jsonutils 

public static void main(string args) throws jsonexception, ioexception

}

簡單對比一下使用json-lib的實現方式,前面的**基本一致,區別是這裡使用的是org.json.xml類,呼叫的是tojsonobject方法,接受的是乙個xml格式的字串,生成乙個jsonobject物件,這裡也是一樣,調不呼叫jsonobject的tostring方法輸出效果都一樣,xml檔案內容一樣,輸出的格式見下

}
最後總結一下:

1 json-lib依賴的jar包很多,需要全部集齊,org.json僅僅需要兩個jar包即可實現,乙個org.json另乙個是commons-io

2 兩者輸出的xml格式不同,前者不帶根標籤需要手動新增,會區別標籤的屬性和子標籤,後者帶有根標籤,標籤的屬性和子標籤不會區分對待,因此根據自己的實際情況自行選擇修改即可。

ps:如果還有其他的更好的xml轉json方式,希望各位大神能告訴一下,再次先謝過了,那麼這篇到此結束先了

xml檔案轉化為datatable

asp.net 新建xml檔案,程式碼如附件 annie female 25 tom male 28 lily female 22後台寫轉換方法 private static datatable xmltodatatable string xml foreach xmlnode xx in doc....

JS中將物件轉化為陣列

這個對於大佬來說應該是個很基礎的問題,但是今天我要用到這個的時候卻一下沒想起來該怎麼做,所以打算寫下來加深下影響。舉個例子,如何把乙個物件轉化為 我們都知道,js中物件有兩種取值方式,通過在.後面直接加屬性名取值,這也是我們最常使用的一種方式,例如 let obj console.log obj.n...

JS中將物件轉化為陣列

通過在.後面直接加屬性名取值,這也是我們最常使用的一種方式 let obj console.log obj.name wan let obj console.log obj name wan 中括號獲取的時候,屬性名稱要麼使用變數,要麼應該用字串 物件 let obj 如果目標陣列只是為了得到物件的...