您好,登錄后才能下訂單哦!
這篇文章主要講解了Java使用JSONObject操作json的方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
簡介
在程序開發過程中,在參數傳遞,函數返回值等方面,越來越多的使用JSON。JSON(JavaScript Object Notation)是一種輕量級的數據交換格式,同時也易于機器解析和生成、易于理解、閱讀和撰寫,而且Json采用完全獨立于語言的文本格式,這使得Json成為理想的數據交換語言。
JSON建構于兩種結構:
“名稱/值”對的集合(A Collection of name/value pairs),在不同的語言中,它被理解為對象(Object), 記錄(record), 結構(struct), 字典(dictionary), 有趣列表(keyed list), 哈希表(hash table)或者關聯數組(associative array)。
JSONObject依賴:
最后一行需要保留,有兩個jdk版本的實現:json-lib-2.1-jdk13.jar和json-lib-2.1-jdk15.jar
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency>
使用net.sf.json需要導入的jar包
JSONObject
創建JSONObject,添加屬性
//創建JSONObject JSONObject json = new JSONObject(); //添加屬性 json.put("username", "張三"); json.put("password", "123"); //打印 System.out.println(json); //增加屬性 json.element("sex", "男"); json.put("age", 18); System.out.println(json);
根據key返回輸出
System.out.println(json.get("sex"));
判斷輸出對象的類型
boolean isArray = json.isArray(); boolean isEmpty = json.isEmpty(); boolean isNullObject = json.isNullObject(); System.out.println("是否數組:"+isArray+", 是否空:"+isEmpty+", 是否空為空對象:"+isNullObject);
把JSONArray添加到JSONObject中
/把JSONArray添加到JSONObject中 JSONArray jsonArray = new JSONArray(); jsonArray.add(0, "張三"); jsonArray.add(1, "123"); //開始添加 json.element("student", jsonArray); System.out.println(json);
全部代碼:
import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Json { public static void main(String[] args) { //創建JSONObject JSONObject json = new JSONObject(); //添加屬性 json.put("username", "張三"); json.put("password", "123"); //打印 System.out.println(json); //增加屬性 json.element("sex", "男"); json.put("age", 18); System.out.println(json); //根據key返回 System.out.println(json.get("sex")); //判斷輸出對象的類型 boolean isArray = json.isArray(); boolean isEmpty = json.isEmpty(); boolean isNullObject = json.isNullObject(); System.out.println("是否數組:"+isArray+", 是否空:"+isEmpty+", 是否空為空對象:"+isNullObject); System.out.println("====="); //把JSONArray添加到JSONObject中 JSONArray jsonArray = new JSONArray(); jsonArray.add(0, "張三"); jsonArray.add(1, "123"); //開始添加 json.element("student", jsonArray); System.out.println(json); } }
運行結果:
創建JSONArray,添加屬性值
//創建JSONArray JSONArray jsonArray = new JSONArray(); //添加 jsonArray.add(0, "張三"); jsonArray.add(1, "123"); jsonArray.element("男"); System.
根據下標返回輸出
System.out.println(jsonArray.get(0));
根據下標設置新值,修改
jsonArray.set(0, "李四"); System.out.println(jsonArray);
把JSONObject放入到JSONArray中
//把JSONObject放入到JSONArray中 JSONObject jsonObject = new JSONObject(); jsonObject.put("username", "張三"); jsonObject.put("password", "123"); jsonArray.add(jsonObject); System.
全部代碼:
import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Json { public static void main(String[] args) { //創建JSONArray JSONArray jsonArray = new JSONArray(); //添加 jsonArray.add(0, "張三"); jsonArray.add(1, "123"); jsonArray.element("男"); System.out.println(jsonArray); //根據下標返回輸出 System.out.println(jsonArray.get(0)); //根據下標設置新值,修改 jsonArray.set(0, "李四"); System.out.println(jsonArray); //把JSONObject放入到JSONArray中 JSONObject jsonObject = new JSONObject(); jsonObject.put("username", "張三"); jsonObject.put("password", "123"); jsonArray.add(jsonObject); System.out.println(jsonArray); //循環輸出 for(int i = 0; i < jsonArray.size(); i++) { System.out.println(jsonArray.get(i)); } } }
運行結果
student類:
public class Student { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Student(String username, String password) { super(); this.username = username; this.password = password; } public Student() { super(); // TODO Auto-generated constructor stub } @Override public String toString() { return "Student [username=" + username + ", password=" + password + "]"; } }
定義對象,JavaBean對象轉json字符串
//定義對象 Student stu = new Student("張三", "123456"); //JavaBean對象轉json字符串 JSONObject jsonObject = JSONObject.fromObject(stu); System.out.println(jsonObject);
json字符串轉為javaBean
//json字符串轉為javaBean //定義json字符串 String jsondata = "{\"username\":\"李四\", \"password\":\"123\"}"; //轉為json對象 JSONObject json = JSONObject.fromObject(jsondata); //轉為JavaBean對象 Student stu2 = (Student)JSONObject.toBean(json, Student.class); System.out.println(stu2.toString());
全部代碼:
import net.sf.json.JSONObject; public class Json { public static void main(String[] args) { //定義對象 Student stu = new Student("張三", "123456"); //JavaBean對象轉json字符串 JSONObject jsonObject = JSONObject.fromObject(stu); System.out.println(jsonObject); //json字符串轉為javaBean //定義json字符串 String jsondata = "{\"username\":\"李四\", \"password\":\"123\"}"; //轉為json對象 JSONObject json = JSONObject.fromObject(jsondata); //轉為JavaBean對象 Student stu2 = (Student)JSONObject.toBean(json, Student.class); System.out.println(stu2.toString()); } }
輸出結果:
先定義list集合,list轉json字符串
//定義list集合 List list = new ArrayList(); list.add(new Student("張三", "123")); list.add(new Student("李四", "456")); //list轉json字符串 JSONArray jsonArray = JSONArray.fromObject(list); System.out.println(jsonArray);
json字符串轉list
//json字符串轉list List list2 = new ArrayList(); String jsondata = "[{\"password\":\"123\",\"username\":\"張三\"},{\"password\":\"456\",\"username\":\"李四\"}]"; JSONArray jsonArray1 = JSONArray.fromObject(jsondata); for(int i = 0; i < jsonArray1.size(); i++) { JSONObject jsonObject2 = jsonArray1.getJSONObject(i); Student stu2 = (Student)JSONObject.toBean(jsonObject2, Student.class); list2.add(stu2); } System.out.println(list2);
全部代碼
import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class Json { public static void main(String[] args) { //定義list集合 List list = new ArrayList(); list.add(new Student("張三", "123")); list.add(new Student("李四", "456")); //list轉json字符串 JSONArray jsonArray = JSONArray.fromObject(list); System.out.println(jsonArray); //json字符串轉list List list2 = new ArrayList(); String jsondata = "[{\"password\":\"123\",\"username\":\"張三\"},{\"password\":\"456\",\"username\":\"李四\"}]"; JSONArray jsonArray1 = JSONArray.fromObject(jsondata); for(int i = 0; i < jsonArray1.size(); i++) { JSONObject jsonObject2 = jsonArray1.getJSONObject(i); Student stu2 = (Student)JSONObject.toBean(jsonObject2, Student.class); list2.add(stu2); } System.out.println(list2); } }
運行結果
定義map集合,Map轉json字符串
//定義map集合 Map map = new HashMap(); map.put("1", new Student("張三", "123")); map.put("2", new Student("李四", "456")); //Map轉json字符串 JSONObject jsonMap = JSONObject.fromObject(map); System.out.println(jsonMap);
定義字符串map集合,map集合字符串轉為map
//定義字符串map集合 String jsondata = "{\"1\":{\"password\":\"123\",\"username\":\"張三\"},\"2\":{\"password\":\"456\",\"username\":\"李四\"}}"; //map集合字符串轉為map Map map2 = (Map)JSONObject.fromObject(jsondata); Set set = map2.keySet(); //定義迭代器,迭代輸出 Iterator ite = set.iterator(); while(ite.hasNext()) { //取出一個字符串對象 String key = (String)ite.next(); //轉為json格式 JSONObject jsonObject = JSONObject.fromObject(map2.get(key)); //轉為對象 Student stu = (Student)JSONObject.toBean(jsonObject, Student.class); System.out.println(key+" "+stu); }
全部代碼
import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import net.sf.json.JSONObject; public class Json { public static void main(String[] args) { //定義map集合 Map map = new HashMap(); map.put("1", new Student("張三", "123")); map.put("2", new Student("李四", "456")); //Map轉json字符串 JSONObject jsonMap = JSONObject.fromObject(map); System.out.println(jsonMap); //定義字符串map集合 String jsondata = "{\"1\":{\"password\":\"123\",\"username\":\"張三\"},\"2\":{\"password\":\"456\",\"username\":\"李四\"}}"; //map集合字符串轉為map Map map2 = (Map)JSONObject.fromObject(jsondata); Set set = map2.keySet(); //定義迭代器,迭代輸出 Iterator ite = set.iterator(); while(ite.hasNext()) { //取出一個字符串對象 String key = (String)ite.next(); //轉為json格式 JSONObject jsonObject = JSONObject.fromObject(map2.get(key)); //轉為對象 Student stu = (Student)JSONObject.toBean(jsonObject, Student.class); System.out.println(key+" "+stu); } } }
運行結果
定義list集合,List轉型JSONArray
//定義list集合 List<Student> list = new ArrayList<Student>(); list.add(new Student("張三", "123")); list.add(new Student("李四", "456")); //List轉型JSONArray JSONArray jsonArray = JSONArray.fromObject(list); System.out.println(jsonArray.toString());
JSONArray轉型List,JSONArray是用的上面的那個jsonArray變量
//JSONArray轉型List List<Student> list2 = JSONArray.toList(jsonArray, new Student(), new JsonConfig()); Iterator<Student> ite = list2.iterator(); while(ite.hasNext()) { Student stu = ite.next(); System.out.println(stu); }
全部代碼
import java.util.ArrayList; import java.util.Iterator; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JsonConfig; public class Json { public static void main(String[] args) { //定義list集合 List<Student> list = new ArrayList<Student>(); list.add(new Student("張三", "123")); list.add(new Student("李四", "456")); //List轉型JSONArray JSONArray jsonArray = JSONArray.fromObject(list); System.out.println(jsonArray.toString()); //JSONArray轉型List List<Student> list2 = JSONArray.toList(jsonArray, new Student(), new JsonConfig()); Iterator<Student> ite = list2.iterator(); while(ite.hasNext()) { Student stu = ite.next(); System.out.println(stu); } } }
運行結果
定義數組,數組轉JSONArray
//定義數組 boolean[] boolArray = {true, false, true}; //java數組轉JSONArray JSONArray jsonArray = JSONArray.fromObject(boolArray); System.out.println(jsonArray.toString());
JSONArray轉java數組
//JSONArray轉java數組 Object obj[] = jsonArray.toArray(); for(Object o : obj) { System.out.print(o+"\t"); }
全部代碼
import net.sf.json.JSONArray; public class Json { public static void main(String[] args) { //定義數組 boolean[] boolArray = {true, false, true}; //java數組轉JSONArray JSONArray jsonArray = JSONArray.fromObject(boolArray); System.out.println(jsonArray.toString()); //JSONArray轉java數組 Object obj[] = jsonArray.toArray(); for(Object o : obj) { System.out.print(o+"\t"); } } }
運行結果
看完上述內容,是不是對Java使用JSONObject操作json的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。