java中處理json各種各樣的轉(zhuǎn)換方法(推薦)
JSON 即 JavaScript Object Natation,它是一種輕量級(jí)的數(shù)據(jù)交換格式,非常適合于服務(wù)器與 JavaScript 的交互。本文將快速講解 JSON 格式,并通過(guò)代碼示例演示如何分別在客戶端和服務(wù)器端進(jìn)行 JSON 格式數(shù)據(jù)的處理。
Json必需的包:
commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
json-lib-2.2.3-jdk13.jar
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar
出現(xiàn)java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher錯(cuò)誤是因?yàn)闆]有導(dǎo)入ezmorph.jar文件或版本不對(duì)。
出現(xiàn)java.lang.NoClassDefFoundError: org/apache/commons/collections/map/ListOrderedMap錯(cuò)誤是因?yàn)闆]有導(dǎo)入commons-collections.jar文件或版本不對(duì)。
1.java集合 json集合之間的轉(zhuǎn)換
1. Java集合轉(zhuǎn)換成Json集合
關(guān)鍵類:JSONArray jsonArray = JSONArray.fromObject(Object obj);
使用說(shuō)明:將Java集合對(duì)象直接傳進(jìn)JSONArray.fromObject()中,得到一個(gè)JSONArray集合,再直接使用JSONArray的toString()方法,便可得到j(luò)son集合
示例代碼:
@Test public void testCreateJsonArray() { //Java集合 List<Employee> list = new ArrayList<Employee>(); list.add(new Employee("zhangSan","13")); list.add(new Employee("liSi","14")); //創(chuàng)建json集合 JSONArray jsonArray = JSONArray.fromObject(list); System.out.println(jsonArray.toString()); }
輸出結(jié)果:
[{"age":"13","name":"zhangSan"},{"age":"14","name":"liSi"}]
2. Json集合轉(zhuǎn)換成Java集合
關(guān)鍵類: JSONArray jsonArray = JSONArray.fromObject(Object obj);
使用說(shuō)明:將json字符串對(duì)象傳入,便可得到一個(gè)JSONArray對(duì)象,再調(diào)用JSONArray對(duì)象的toCollection(JSONArray jsonArray, Class clss)方法,便可得到一個(gè)Java對(duì)象的集合。
示例代碼:
@Test public void testParseJsonArray() { //json集合 String jsonString = "[{\"age\":\"13\",\"name\":\"zhangSan\"},{\"age\":\"14\",\"name\":\"liSi\"}]"; JSONArray jsonArray = JSONArray.fromObject(jsonString); //Java集合 List<Employee> list = (List<Employee>) jsonArray.toCollection(jsonArray, Employee.class); for(Employee employee : list){ System.out.println(employee); } }
輸出結(jié)果:
[name=zhangSan,age=13] [name=liSi,age=14]
2.JAVA實(shí)現(xiàn)XML與JSON互相轉(zhuǎn)換方法
1.XML轉(zhuǎn)換為Json
public static String xmlToJson(String xml) { XMLSerializer serializer = new XMLSerializer(); return serializer.read(xml).toString(); }
2.JSON轉(zhuǎn)換為XML
public static String jsonToXML(String json) { XMLSerializer xmlSerializer = new XMLSerializer(); // 根節(jié)點(diǎn)名稱 xmlSerializer.setRootName("xml"); // 不對(duì)類型進(jìn)行設(shè)置 xmlSerializer.setTypeHintsEnabled(false); String xmlStr = ""; if (json.contains("[") && json.contains("]")) { // jsonArray JSONArray jobj = JSONArray.fromObject(json); xmlStr = xmlSerializer.write(jobj); } else { // jsonObject JSONObject jobj = JSONObject.fromObject(json); xmlStr = xmlSerializer.write(jobj); } System.out.println("轉(zhuǎn)換后的參數(shù):" + xmlStr); return xmlStr; }
以上這篇java中處理json各種各樣的轉(zhuǎn)換方法(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java Set簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Set最大的特性就是不允許在其中存放的元素是重復(fù)的。接下來(lái)通過(guò)本文給大家分享java set常用方法和原理分析,需要的的朋友參考下吧2017-05-05Springboot集成Mybatis-plus、ClickHouse實(shí)現(xiàn)增加數(shù)據(jù)、查詢數(shù)據(jù)功能
本文給大家講解Springboot + mybatis-plus 集成ClickHouse,實(shí)現(xiàn)增加數(shù)據(jù)、查詢數(shù)據(jù)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08SpringBoot中的@ConditionalOnMissingBean注解使用詳解
這篇文章主要介紹了SpringBoot中的@ConditionalOnMissingBean注解使用詳解,@ConditionalOnMissingBean作用在@Bean定義上,也就是說(shuō)在容器加載它作用的Bean時(shí),檢查容器中是否存在目標(biāo)類型,需要的朋友可以參考下2024-01-01SpringCloud 如何使用feign時(shí)的復(fù)雜參數(shù)傳遞
這篇文章主要介紹了SpringCloud 如何使用feign時(shí)的復(fù)雜參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07Java實(shí)現(xiàn)簡(jiǎn)易撲克牌游戲的完整實(shí)例
這篇文章主要介紹了Java實(shí)現(xiàn)簡(jiǎn)易撲克牌游戲的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04springboot配置多數(shù)據(jù)源(靜態(tài)和動(dòng)態(tài)數(shù)據(jù)源)
在開發(fā)過(guò)程中,很多時(shí)候都會(huì)有垮數(shù)據(jù)庫(kù)操作數(shù)據(jù)的情況,需要同時(shí)配置多套數(shù)據(jù)源,本文主要介紹了springboot配置多數(shù)據(jù)源(靜態(tài)和動(dòng)態(tài)數(shù)據(jù)源),感興趣的可以了解一下2023-09-09Spring?Cloud?Alibaba負(fù)載均衡實(shí)現(xiàn)方式
這篇文章主要為大家介紹了Spring?Cloud?Alibaba負(fù)載均衡實(shí)現(xiàn)方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Java系統(tǒng)變量參數(shù)獲取設(shè)置System.getProperties()的方法
這篇文章主要介紹了Java系統(tǒng)變量參數(shù)System.getProperties()獲取設(shè)置方法,文末給大家提到了Systm.getenv()與System.getProperties()區(qū)別,需要的朋友可以參考下2022-01-01