zoukankan      html  css  js  c++  java
  • json二-------json-lib(net.sf.json)

    1.需要引入的包

    下载地址:http://download.csdn.net/download/muyeju/9999535 

    2.缺包会出现如下错误

      1、org/apache/commons/lang/exception/NestableRuntimeException是缺少commons-lang-2.6.jar

      2、net/sf/ezmorph/Morpher是缺少ezmorph-1.0.6.jar

      3、org.apache.commons.logging.LogFactory是缺少

      4、org.apache.commons.collections.map.MultiKeyMap是缺少commons-collections-3.2.1.jar

      5、org.apache.commons.beanutils.DynaBean是缺少commons-beanutils-1.9.2.jar

    3.将对象、Map转为json,用JSONObject.fromObject(对象)

    Student s = new Student() ;
    s.setAge(20);
    s.setName("张三");
    JSONObject json = JSONObject.fromObject(s) ;
    System.out.println("----------"+json.toString());
    结果:----------{"age":20,"name":"张三"}

    4.将集合转为json,用JSONArray.fromObject(集合)

    List<Student> students = new ArrayList<Student>() ;
    students.add(s) ;
    JSONArray jsonArray = JSONArray.fromObject(students) ;
    System.out.println("----------"+jsonArray.toString());
    结果:----------[{"name":"张三","age":20}]

    5.json对象数组转为集合,先把json对象数组字符串转为JSONArray,然后调用JSONArray对象的toList()方法

    String student = "[{'name':'张三','age':20},{'name':'李四','age':21}]" ;
            JSONArray j = JSONArray.fromObject(student) ;
            List<Student> students = JSONArray.toList(j, Student.class) ;
            for (Student s : students) {
                System.out.println("-----------"+s.getName());
                System.out.println("-----------"+s.getAge());
            }
    结果:

        -----------张三
        -----------20
        -----------李四
        -----------21

    6.json字符串对象转为对象,先将字符串转为JSONObject,然后调用它的toBean()方法

            String student = "{'name':'李四','age':21}" ;
            JSONObject jsonObject = JSONObject.fromObject(student) ;
            Student s = (Student) jsonObject.toBean(jsonObject, Student.class) ;
            System.out.println("--------"+s.getName());
            System.out.println("--------"+s.getAge());    
         结果:

          --------李四
          --------21

     7.缺点:

      1、依赖的jar包太多,像fastjson,gosn这些就一个jar

      2、如果要将json字符串转为Bean,且json里面有List或者Map,则,解析会报错,例如:String s = "{'name':'张三','age':20,'teacher':[{'name':'康','age':40,'subject':'语文'}]}" ;这种类型的json解析成对象就会报错,如果没有里面的teacher则不会报错

      

  • 相关阅读:
    NanoProfiler
    NanoProfiler
    Open Source Cassandra Gitbook for Developer
    Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
    Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
    Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误
    Android Fragment使用(一) 基础篇 温故知新
    Set up Github Pages with Hexo, migrating from Jekyll
    EventBus源码解析 源码阅读记录
    Android M Permission 运行时权限 学习笔记
  • 原文地址:https://www.cnblogs.com/-scl/p/7601219.html
Copyright © 2011-2022 走看看