zoukankan      html  css  js  c++  java
  • 解析json方式之net.sf.json

    前面转载了json解析的技术:fastjson,今天说下另外一种技术。
    下载地址
    [plain] view plain copy
     
    1. 本次使用版本:http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-1.1/  
    2. 最新版本:http://sourceforge.net/projects/json-lib/files/json-lib/  

    使用net.sf.json需要导入的包

    JSONObject

    [java] view plain copy
     
    1. package com.itlwc.test;  
    2.   
    3. import net.sf.json.JSONArray;  
    4. import net.sf.json.JSONObject;  
    5.   
    6. public class Test {  
    7.     public static void main(String[] args) {  
    8.         // 创建JSONObject  
    9.         JSONObject jsonObject = new JSONObject();  
    10.         jsonObject.put("username", "lwc");  
    11.         jsonObject.put("password", "123");  
    12.         // 打印:1  
    13.         System.out.println(jsonObject);  
    14.   
    15.         // 增加属性,打印:2  
    16.         jsonObject.element("sex", "男");  
    17.         System.out.println(jsonObject);  
    18.           
    19.         // 根据key返回,打印:3  
    20.         System.out.println(jsonObject.get("sex"));  
    21.   
    22.         // 判读输出对象的类型  
    23.         boolean isArray = jsonObject.isArray();  
    24.         boolean isEmpty = jsonObject.isEmpty();  
    25.         boolean isNullObject = jsonObject.isNullObject();  
    26.         // 打印:4  
    27.         System.out.println("是否数组:" + isArray + " 是否空:" + isEmpty + " 是否空对象:"  
    28.                 + isNullObject);  
    29.           
    30.         // 把JSONArray增加到JSONObject中  
    31.         JSONArray jsonArray = new JSONArray();  
    32.         jsonArray.add(0, "lwc");  
    33.         jsonArray.add(1, "nxj");  
    34.         // 开始增加  
    35.         jsonObject.element("student", jsonArray);  
    36.         // 打印:5  
    37.         System.out.println(jsonObject);  
    38.     }  
    39. }  
    40. /* 
    41. 打印结果 
    42.     {"username":"lwc","password":"123"} 
    43.     {"username":"lwc","password":"123","sex":"男"} 
    44.     男 
    45.     是否为数组:false 是否为空:false 是否为空对象:false 
    46.     {"username":"lwc","password":"123","sex":"男","student":["lwc","nxj"]} 
    47. */  

    JSONArray

    [java] view plain copy
     
    1. package com.itlwc.test;  
    2.   
    3. import net.sf.json.JSONArray;  
    4. import net.sf.json.JSONObject;  
    5.   
    6. public class Test {  
    7.     public static void main(String[] args) {  
    8.         //创建JSONArray  
    9.         JSONArray jsonArray = new JSONArray();  
    10.         jsonArray.add(0, "lwc");     
    11.         jsonArray.add(1, "nxj");  
    12.         jsonArray.element("mxj");  
    13.         //打印:1  
    14.         System.out.println(jsonArray);  
    15.           
    16.         //根据下标返回,打印:2  
    17.         System.out.println(jsonArray.get(0));  
    18.           
    19.         //根据下标设置新值,打印:3  
    20.         jsonArray.set(0, "itlwc");  
    21.         System.out.println(jsonArray);  
    22.           
    23.         //把JSONObject放入到JSONArray中  
    24.         JSONObject jsonObject = new JSONObject();  
    25.         jsonObject.put("username", "lwc");  
    26.         jsonObject.put("password", "123");  
    27.         //开始增加,打印:4  
    28.         jsonArray.add(jsonObject);  
    29.         System.out.println(jsonArray);  
    30.           
    31.         //遍历,打印:5  
    32.         for(int i=0;i<jsonArray.size();i++){  
    33.             System.out.print(jsonArray.get(i)+" ");  
    34.         }  
    35.     }  
    36. }  
    37. /* 
    38. 打印结果 
    39.     ["lwc","nxj","mxj"] 
    40.     lwc 
    41.     ["itlwc","nxj","mxj"] 
    42.     ["itlwc","nxj","mxj",{"username":"lwc","password":"123"}] 
    43.     itlwc   nxj mxj {"username":"lwc","password":"123"} 
    44. */  

    JavaBean与json字符串互转

    [java] view plain copy
     
    1. package com.itlwc.test;  
    2.   
    3. import net.sf.json.JSONObject;  
    4.   
    5. import com.itlwc.entity.Student;  
    6.   
    7. public class Test {  
    8.     public static void main(String[] args) {  
    9.         // JavaBean对象转json字符串  
    10.         Student stu1 = new Student("lwc", "111111");
    11. //这个方法是将对象转为json对象(不论是将json字符串还是java对象都是这个方法)  
    12.         JSONObject jsonObject = JSONObject.fromObject(stu1);  
    13.         System.out.println(jsonObject);  
    14.   
    15.         // json字符串转JavaBean  
    16.         String jsondata = "{"password":"111111","username":"lwc"}";  
    17.         JSONObject jsonObject1 = JSONObject.fromObject(jsondata);  
    18.         Student stu2 = (Student) JSONObject.toBean(jsonObject1, Student.class);  
    19.         System.out.println(stu2);  
    20.     }  
    21. }  
    22. /* 
    23. 打印结果: 
    24.     {"password":"111111","username":"lwc"} 
    25.     用户: lwc 密码:111111 
    26. */  

    List与json字符串互转

    [java] view plain copy
     
    1. package com.itlwc.test;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.List;  
    5.   
    6. import net.sf.json.JSONArray;  
    7. import net.sf.json.JSONObject;  
    8.   
    9. import com.itlwc.entity.Student;  
    10.   
    11. public class Test {  
    12.     public static void main(String[] args) {  
    13.         // List转json字符串  
    14.         List list = new ArrayList();  
    15.         list.add(new Student("lwc", "111111"));  
    16.         list.add(new Student("nxj", "222222"));  
    17. //将list集合转为json数组对象
    18.         JSONArray jsonArray = JSONArray.fromObject(list);  
    19.         System.out.println(jsonArray);  
    20.   
    21.         // json字符串转List  
    22.         List list1 = new ArrayList();  
    23.         String jsondata = "[{"password":"111111","username":"lwc"},{"password":"222222","username":"nxj"}]";  
    24.         JSONArray jsonArray1 = JSONArray.fromObject(jsondata);  
    25.         for (int i = 0; i < jsonArray1.size(); i++) {  
    26.             JSONObject jsonObject2 = jsonArray1.getJSONObject(i);  
    27.             Student stu2 = (Student) JSONObject.toBean(jsonObject2,  
    28.                     Student.class);  
    29.             list1.add(stu2);  
    30.         }  
    31.         System.out.println(list1);  
    32.     }  
    33. }  
    34. /* 
    35. 打印结果: 
    36.     [{"password":"111111","username":"lwc"},{"password":"222222","username":"nxj"}] 
    37.     [用户: lwc 密码:111111, 用户: nxj 密码:222222] 
    38. */  

    Map与json字符串互转

    [java] view plain copy
     
    1. package com.itlwc.test;  
    2.   
    3. import java.util.HashMap;  
    4. import java.util.Iterator;  
    5. import java.util.Map;  
    6. import java.util.Set;  
    7.   
    8. import net.sf.json.JSONObject;  
    9.   
    10. import com.itlwc.entity.Student;  
    11.   
    12. public class Test {  
    13.     public static void main(String[] args) {  
    14.         // Map转json字符串  
    15.         Map map = new HashMap();  
    16.         map.put("1", new Student("lwc", "111111"));  
    17.         map.put("2", new Student("nxj", "222222"));  
    18.         JSONObject jsonMap = JSONObject.fromObject(map);  
    19.         System.out.println(jsonMap);  
    20.   
    21.         // json字符串转Map  
    22.         String jsondata = "{"2":{"password":"222222","username":"nxj"},"1":{"password":"111111","username":"lwc"}}";  
    23.         Map map1 = (Map) JSONObject.fromObject(jsondata);  
    24.         Set set = map1.keySet();  
    25.         Iterator ite = set.iterator();  
    26.         while (ite.hasNext()) {  
    27.             String key = (String) ite.next();  
    28.             JSONObject jsonObject = JSONObject.fromObject(map1.get(key));  
    29.             Student stu = (Student) JSONObject  
    30.                     .toBean(jsonObject, Student.class);  
    31.             System.out.println(key + " " + stu);  
    32.         }  
    33.   
    34.     }  
    35. }  
    36. /* 
    37. 打印结果:  
    38.     {"2":{"password":"222222","username":"nxj"},"1":{"password":"111111","username":"lwc"}} 
    39.     2 用户: nxj 密码:222222 
    40.     1 用户: lwc 密码:111111 
    41. */  

    JSONArray与List互转

    [java] view plain copy
     
    1. package com.itlwc.test;  
    2.   
    3. import java.util.ArrayList;  
    4. import java.util.Iterator;  
    5. import java.util.List;  
    6.   
    7. import net.sf.json.JSONArray;  
    8. import net.sf.json.JsonConfig;  
    9.   
    10. import com.itlwc.entity.Student;  
    11.   
    12. public class Test {  
    13.     public static void main(String[] args) {  
    14.         //List转型JSONArray  
    15.         List<Student> list = new ArrayList<Student>();    
    16.         list.add(new Student("lwc", "111111"));  
    17.         list.add(new Student("nxj", "222222"));   
    18.         JSONArray jsonArray = JSONArray.fromObject(list);  
    19.         System.out.println(jsonArray.toString());  
    20.           
    21.         //JSONArray转型List  
    22.         List<Student> list2 = JSONArray.toList(jsonArray, new Student(), new JsonConfig());  
    23.         Iterator<Student> ite =  list2.iterator();  
    24.         while(ite.hasNext()){  
    25.             Student stu =ite.next();  
    26.             System.out.println(stu);  
    27.         }  
    28.     }  
    29. }  
    30. /* 
    31. 打印结果 
    32.     [{"password":"111111","username":"lwc"},{"password":"222222","username":"nxj"}] 
    33.     用户: lwc 密码:111111 
    34.     用户: nxj 密码:222222 
    35. */  

    JSONArray与数组互转

    [java] view plain copy
     
    1. package com.itlwc.test;  
    2.   
    3. import net.sf.json.JSONArray;  
    4.   
    5. public class Test {  
    6.     public static void main(String[] args) {  
    7.         // Java数组转JSONArray  
    8.         boolean[] boolArray = new boolean[] { true, false, true };  
    9.         JSONArray jsonArray = JSONArray.fromObject(boolArray);  
    10.         System.out.println(jsonArray.toString());  
    11.   
    12.         // JSONArray转Java数组  
    13.         Object obj[] = jsonArray.toArray();  
    14.         for (Object o : obj) {  
    15.             System.out.print(o + " ");  
    16.         }  
    17.     }  
    18. }  
    19. /* 
    20. 打印结果 : 
    21.     [true,false,true] 
    22.     true false true  
    23. */  

    XML与JSON互转

    需要导入xom-1.1.jar

    [java] view plain copy
     
    1. package com.itlwc.test;  
    2.   
    3. import net.sf.json.JSON;  
    4. import net.sf.json.JSONObject;  
    5. import net.sf.json.xml.XMLSerializer;  
    6.   
    7. public class Test {  
    8.     public static void main(String[] args) throws Exception {  
    9.         // XML转JSON  
    10.         String xml = "<root>" + "<name type='type'>zhaipuhong</name>"  
    11.                 + "<gender>male</gender>" + "<birthday>" + "<year>1970</year>"  
    12.                 + "<month>12</month>" + "<day>17</day>" + "</birthday>"  
    13.                 + "</root>";  
    14.         XMLSerializer xmlSerializer = new XMLSerializer();  
    15.         JSON json = xmlSerializer.read(xml);  
    16.         System.out.println(json.toString(2));  
    17.   
    18.         // JSON转XML  
    19.         String jsondata = "{"root":{" + ""name":"zhaipuhong","  
    20.                 + ""gender":"male"," + ""birthday":{"  
    21.                 + ""year":"1970"," + ""month":"12"," + ""day":"17""  
    22.                 + "}" + "}" + "}";  
    23.         JSONObject jsonObject = JSONObject.fromObject(jsondata);  
    24.         String xmlstr = new XMLSerializer().write(jsonObject);  
    25.         System.out.println(xmlstr);  
    26.     }  
    27. }  
    28. /* 
    29. 打印结果: 
    30.     { 
    31.       "name": "zhaipuhong", 
    32.       "gender": "male", 
    33.       "birthday":   { 
    34.         "year": "1970", 
    35.         "month": "12", 
    36.         "day": "17" 
    37.       } 
    38.     } 
    39.     <?xml version="1.0" encoding="UTF-8"?> 
    40.     <o> 
    41.         <root class="object"> 
    42.             <birthday class="object"> 
    43.                 <day type="string">17</day> 
    44.                 <month type="string">12</month> 
    45.                 <year type="string">1970</year> 
    46.             </birthday> 
    47.             <gender type="string">male</gender> 
    48.             <name type="string">zhaipuhong</name> 
    49.         </root> 
    50.     </o> 
    51. */  
  • 相关阅读:
    underscore相关记录
    背包问题
    数学图形(2.26) 3D曲线结
    数学图形(1.41)super spiral超级螺线
    数学图形(2.25)三维悬链线与悬链面
    数学图形(2.24) 帖在圆柱面上的曲线
    数学图形(2.23)Cylindric sine wave柱面正弦曲线
    数学图形(2.22) 帖在圆锥面上的曲线
    数学图形(2.21) 帖在抛物面上的曲线
    数学图形(2.20)3D曲线
  • 原文地址:https://www.cnblogs.com/fengli9998/p/7402518.html
Copyright © 2011-2022 走看看