JSON.parseobject()和JSON.parseArray()区别

Posted hank_hush

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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),两者调的是同一个方法。 

以上是关于JSON.parseobject()和JSON.parseArray()区别的主要内容,如果未能解决你的问题,请参考以下文章

JSON.parseobject()和JSON.parseArray()区别

json.parseobject效率怎么样

json.parseobject()的set方法设置顺序

JSON.parseObject的几种用法

JSON.parseObject的几种用法

数据传输:JSON-fastjson