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),兩者調的是同一個方法。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM