zoukankan      html  css  js  c++  java
  • JSON.parseobject()和JSON.parseArray()区别

    JSON.parseArray():


    这个方法的作用就是将json格式的数据转换成数组格式。

    假设有Person这个类,有json类型数据jsonStr = [{"name":"张三","age":"1"},{"name":"李四","age":"4"}],那么List lists = json.parseArray(jsonStr, Person.class);lists就可以接收jsonStr了

    源码解析:

    1 public static <T> List<T> parseArray(String text, Class<T> clazz) {
     2         if (text == null) {
     3             return null;
     4         }
     5 
     6         List<T> list;
     7 
     8         DefaultJSONParser parser = new DefaultJSONParser(text, ParserConfig.getGlobalInstance());
     9         JSONLexer lexer = parser.getLexer();
    10         if (lexer.token() == JSONToken.NULL) {
    11             lexer.nextToken();
    12             list = null;
    13         } else {
    14             list = new ArrayList<T>();
    15             parser.parseArray(clazz, list);
    16 
    17             parser.handleResovleTask(list);
    18         }
    19 
    20         parser.close();
    21 
    22         return list;
    23     }

    JSON.parseObject();

    是将str转化为相应的JSONObject对象,其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置的方法,进行各种处理了。 

    1     public static <T> T parseObject(String text, Class<T> clazz) {
    2         return parseObject(text, clazz, new Feature[0]);
    3     }

    JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别

    根据源码显示:JSON是一个抽象类,JSON中有一个静态方法parseObject(String text),将text解析为一个JSONObject对象并返回;JSONObject是一个继承自JSON的类,当调用JSONObject.parseObject(result)时,会直接调用父类的parseObject(String text)。所以两者没什么区别,一个是用父类去调用父类自己的静态的parseObject(String text),一个是用子类去调用父类的静态parseObject(String text),两者调的是同一个方法。 

  • 相关阅读:
    关于直播的技术整理2
    关于直播的技术整理
    android drawable size
    Could not find gradle wrapper within android sdk
    基于开源Red5搭建的视频直播平台
    Cannot find module 'rxjs/operators/share'
    Cannot find type definition file for '.svn'
    Ionic国际化解决方案
    本博客停止更新改用wordperss
    Powershell批量安装SNMP服务
  • 原文地址:https://www.cnblogs.com/hank-hush/p/12114245.html
Copyright © 2011-2022 走看看