淺析Java中JSONObject和JSONArray使用
廢話不多說,先給大家貼代碼,具體代碼如下所示:
import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.util.*; public class JavaTest { public static void main(String[] args){ JSONObject obj=new JSONObject(); obj.put("derek","23"); obj.put("dad", "49"); obj.put("mom", "45"); System.out.println("通過構(gòu)造器的方式創(chuàng)建的JSONObject對象:"+obj); Map<string,string> map=new LinkedHashMap<>(); map.put("derek","23"); map.put("dad", "49"); map.put("mom", "45"); System.out.println("通過fromObject方法將map對象轉(zhuǎn)換為JSONObject對象:"+JSONObject.fromObject(map)); JSONArray arr=new JSONArray(); arr.add(0,"derek"); arr.add(1,"dad"); arr.add(2,"mom"); System.out.println("通過構(gòu)造器的方式創(chuàng)建的JSONArray:"+arr); ArrayList list=new ArrayList<>(); list.add("derek"); list.add("dad"); list.add("mom"); System.out.println("通過fromObject方法將Arraylist對象轉(zhuǎn)換為JSONArray對象:"+JSONArray.fromObject(list)); System.out.println("將HashMap對象通過fromObject方法轉(zhuǎn)換為JSONArray對象"+JSONArray.fromObject(map)); String str="{\"derek\":23,\"dad\":49,\"mom\":45}"; System.out.println("解析之后的JSON對象:"+JSONObject.fromObject(str)); //遍歷輸出 Iterator it=obj.keys(); while(it.hasNext()){ String key=it.next(); System.out.println(key+":"+obj.get(key)); } } }
運(yùn)行結(jié)果如下:
通過構(gòu)造器的方式創(chuàng)建的JSONObject對象:{"derek":"23","dad":"49","mom":"45"}
通過fromObject方法將map對象轉(zhuǎn)換為JSONObject對象:{"derek":"23","dad":"49","mom":"45"}
通過構(gòu)造器的方式創(chuàng)建的JSONArray:["derek","dad","mom"]
通過fromObject方法將Arraylist對象轉(zhuǎn)換為JSONArray對象:["derek","dad","mom"]
將HashMap對象通過fromObject方法轉(zhuǎn)換為JSONArray對象[{"derek":"23","dad":"49","mom":"45"}]
解析之后的JSON對象:{"derek":23,"dad":49,"mom":45}
derek:23
dad:49
mom:45
Java List是個集合接口,只要是集合類接口都會有個“迭代子”( Iterator ),利用這個迭代子,就可以對list內(nèi)存的一組對象進(jìn)行操作。 所有要想操作這個list內(nèi)存的東西,就首先要得到此迭代子的實(shí)例:Iterator it=l.iterator();
用add()方法即可添加新的成員對象,他可以添加的僅僅只能為對象,不能添加基本數(shù)據(jù)類型,容器還對應(yīng)get(),remove()方法來獲取和刪除數(shù)據(jù)成員
實(shí)例1.
import java.util.*; public class ArrayListTest{ public static void main(String dd[]){ //new了一個存儲list List l=new ArrayList(); //因?yàn)镃ollection framework只能存儲對象所以new封裝類 l.add(new Integer(1)); l.add(new Integer(2)); l.add(new Integer(3)); l.add(new Integer(4)); Iterator it=l.iterator(); //hasNext是取值取的是當(dāng)前值.他的運(yùn)算過程是判斷下個是否有值如果有繼續(xù). while(it.hasNext()){ //設(shè)it.next封裝類,調(diào)用Integer的intValue方法返回值為int賦給i; int i=((Integer)it.next()).intValue(); System.out.println("Element in list is : "+i);}}}
ArrayList list = new ArrayList() 和List<String> list = new ArrayList<String>() 的區(qū)別??
1、存儲內(nèi)容的區(qū)別
ArrayList 可以存儲任何類型的項(xiàng)
List<類型> 只可以存儲指定類型的項(xiàng)
2、使用是否方便
List<>比ArrayList使用方便
因?yàn)樵谑褂肁rrayList內(nèi)部的值時,必須強(qiáng)制轉(zhuǎn)換才行
相信使用過ArrayList的都深有體會,因?yàn)榇娣旁贏rrayList里的值都轉(zhuǎn)換成了Object類型
3、出現(xiàn)的時間
ArrayList比List<>出現(xiàn)的時間早
List<>是C#2.0時出現(xiàn)的,且是其最強(qiáng)大的功能之一
4、所在命名空間的區(qū)別
ArrayList的命名空間是System.Collections
List<>的命名空間是System.Collections.Generic
其中Generic是泛型的意思,使用List<>也就是在使用泛型技術(shù)
5、編程中的使用頻率
大多數(shù)情況下 ArrayList可以廢棄不用,畢竟其是C#2.0之前的技術(shù)了
這一點(diǎn)從在Visual Studio中 新建一個類時便可以看出
新建一個類時,其默認(rèn)使用的命名空間有
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
顯然沒有System.Collections,因?yàn)锳rrayList的使用的確不方便
以上內(nèi)容是小編給大家介紹的Java中JSONObject和JSONArray使用知識,希望對大家有所幫助,有任何問題歡迎給我留言,小編會及時回復(fù)大家的,在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Java多線程之Callable接口的實(shí)現(xiàn)
這篇文章主要介紹了Java多線程之Callable接口的實(shí)現(xiàn),Callable和Runnbale一樣代表著任務(wù),區(qū)別在于Callable有返回值并且可以拋出異常。感興趣的小伙伴們可以參考一下2018-08-08Spring security BCryptPasswordEncoder密碼驗(yàn)證原理詳解
這篇文章主要介紹了Spring security BCryptPasswordEncoder密碼驗(yàn)證原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03Java?MapStruct優(yōu)雅地實(shí)現(xiàn)對象轉(zhuǎn)換
MapSturct?是一個生成類型安全,高性能且無依賴的?JavaBean?映射代碼的注解處理器,用它可以輕松實(shí)現(xiàn)對象轉(zhuǎn)換,下面就來和大家聊聊具體操作吧2023-06-06