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则不会报错

      

  • 相关阅读:
    高并发时,使用Redis应注意的问题 及 Redis缓存帮助类
    NetCore3.1 如何添加带有JWT Token 验证的Swagger
    CSS 技巧一则 -- 不定宽溢出文本适配滚动
    ROS costmap_2d局部障碍物无法清除和机器人到点摇摆
    ROS OccupancyGrid使用说明
    ROS RVIZ显示点云地图的二维投影
    Linux 文档生成器doxygen
    高翔博士 资源索引
    SLAM中的数学基础 第四篇 李群与李代数2
    shell(8):循环
  • 原文地址:https://www.cnblogs.com/-scl/p/7601219.html
Copyright © 2011-2022 走看看