zoukankan      html  css  js  c++  java
  • Java中使用org.json和json-lib解析JSON

    一。JavaProject中org.json解析JSON

    1.JSON的org.son-api下载

    一般搜索jar使用即可。

    1)JSON网址

    http://www.json.org/

    2)JSON的java解析org.json-api网址

    http://www.json.org/java/index.html

    3)JSON的org.json-api源码地址

    https://github.com/douglascrockford/JSON-java
    本例下载日期:2014-11-17

    2.在JavaProject中使用

    1)创建org.json包

    2)从下载的zip包中解压源码

    如果是使用jar,当然没这么麻烦。

    3.使用org.json解析JSON

    1. import org.json.JSONArray;
    2. import org.json.JSONException;
    3. import org.json.JSONObject;

    1)String <---> JSON

    1. /** String转JSON(JSONArray) **/
    2. // 最外围由 [] 包裹
    3. String jsonStr1 = "[{ " + " "user3" : "翠花", "
    4. + " "pswd3" : "cuihua123", "
    5. + " "body": { "chest": 68, "waist": 65, "hip": 68 }"
    6. + "}]";
    7. JSONArray jarray2 = new JSONArray(jsonStr1);
    8. System.out.println(jarray2.getJSONObject(0));
    9.  
    10. /** String 转换成为 JSON(JSONObject) 对象 */
    11. // 最外围由 {} 包裹
    12. String jsonStr2 = "{ " + " "user4" :"凤姐", "
    13. + " "pswd4" :"fengjie123", "
    14. + " "body": { "chest":65, "waist":63, "hip":66 }" + "}";
    15. JSONObject jsonObj1 = new JSONObject(jsonStr2);
    16. // 根据属性名称获取String型数据;
    17. String user4 = jsonObj1.getString("user4");
    18. String pswd4 = jsonObj1.getString("pswd4");
    19. // 根据属性名获取JSONObject类
    20. JSONObject body = jsonObj1.getJSONObject("body");
    21. // 根据属性名称获取int型数据;
    22. int chest = body.getInt("chest");
    23. int waist = body.getInt("waist");
    24. int hip = body.getInt("hip");

    2)集合 <---> JSON

    1. /** List集合转JSON(JSONArray) **/
    2.  
    3. Map<String, String> param1 = new HashMap<String, String>();
    4. param1.put("user1", "小白");
    5. param1.put("pswd1", "xiaobai123");
    6.  
    7. Map<String, String> param2 = new HashMap<String, String>();
    8. param2.put("user2", "小黑");
    9. param2.put("pswd2", "xiaohei123");
    10.  
    11. // JSONArray initial value should be a string or collection or array.
    12. List<Object> params = new ArrayList<Object>();
    13. params.add(param1);
    14. params.add(param2);
    15.  
    16. // 声明JSONArray对象并输入JSON字符串
    17. JSONArray jarray1 = new JSONArray(params); // 除了构造,还有put方法
    18.  
    19. System.out.println(jarray1.toString());
    20.  
    21. /** Map 转 JSON **/
    22. Map<String, String> map = new HashMap<String, String>();
    23. map.put("user5", "小五");
    24. map.put("pswd5", "xiaowu123");
    25. JSONArray jarray3 = new JSONArray();
    26. jarray3.put(map); // 可以put进map,或者list
    27. System.out.println(jarray3.toString());

    3)JavaBean <---> JSON

    1. /* JavaBean的属性:
    2. String username;
    3. String password;
    4. int chest, waist, hip; */
    5. /** JavaBean 转换成为 JSON(JSONObject) 对象 */
    6. bean.setUsername("小四");
    7. JSONObject jsonObj2 = new JSONObject(bean);
    8. System.out.println(jsonObj2.get("username") + ", chest:" + jsonObj2.getInt("chest"));



    二。JavaProject中json-lib解析JSON

    1.JSON的json-lib-api下载

    http://www.json.org/

    http://json-lib.sourceforge.net/

    http://sourceforge.net/projects/json-lib/files/

    2.在JavaProject中使用

    需要其它依赖jar,有些麻烦。

    3.使用json-lib解析JSON

    1. import net.sf.json.JSONArray;
    2. import net.sf.json.JSONObject;

    1)String <---> JSON

    1. // 一般数据 转 JSON(JSONArray)
    2. JSONArray jsonArray3 = JSONArray.fromObject("[{'user3':'凤姐'}, {'pswd3':'fengjie123'}]" );
    3. System.out.println(jsonArray3.toString());
    4. // 一般数据 转 JSON(JSONArray)
    5. JSONArray jsonArray4 = JSONArray.fromObject("['user4', '凤姐xxx', 'pswd4', 'fengjiexxx123']" );
    6. System.out.println(jsonArray4.toString());
    7.  
    8. // 数组 转 JSON(JSONArray)
    9. String[] strs = new String[]{"小白", "小黑", "小四", "岳父"};
    10. JSONArray jsonArray2 = JSONArray.fromObject(strs);
    11. System.out.println(jsonArray2.toString());

    2)集合 <---> JSON

    1. // List 集合转 JSON(JSONArray)
    2. List list1 = new ArrayList();
    3. list1.add("user1");
    4. list1.add("pswd1");
    5. JSONArray jsonArray1 = JSONArray.fromObject(list1);
    6. System.out.println(jsonArray1.toString());
    7.  
    8. // Map 集合转 JSON(JSONObject)
    9. Map<String, String> map = new HashMap<String, String>();
    10. map.put("user2", "芙蓉");
    11. map.put("pswd2", "furong123");
    12. JSONObject jsonObject1 = JSONObject.fromObject(map);
    13. System.out.println(jsonObject1.toString());

    3)JavaBean <---> JSON

    1. // Bean 转 JSON(JSONObject)
    2. JSONObject jsonObject2 = JSONObject.fromObject(new JavaBean("拱拱", "gonggong123", 34, 44, 43));
    3. System.out.println(jsonObject2.toString());
    4.  
    5. // beans 转 JSON
    6. List list2 = new ArrayList();
    7. JavaBean bean1 = new JavaBean("逗比", "doubi123", 56, 54, 55);
    8. JavaBean bean2 = new JavaBean("屌丝", "diaosi123", 34, 45, 56);
    9. list2.add(bean1);
    10. list2.add(bean2);
    11. JSONArray jsonArray5 = JSONArray.fromObject(list2);
    12. System.out.println(jsonArray5.toString());



    三。AndroidProject中的JSON解析

    Android中JSON解析器使用的是org.json。

  • 相关阅读:
    C#学习(五)- 正则表达式等
    C#学习(四)
    C#学习(三)
    C#学习(二)
    终于装好了VS2013,开始!(一)
    简短的开始,C#学习分享地。
    java虚拟机之虚拟机类加载机制
    在用mybatis向MySQL数据库中插入时间时报错:Incorrect datetime value: '' for column '' at row 1
    什么是高并发 ,一些常见的处理方式
    基本类型和引用类型的区别
  • 原文地址:https://www.cnblogs.com/jpfss/p/9441943.html
Copyright © 2011-2022 走看看