fastJson,gosn使用小结
2019獨角獸企業重金招聘Python工程師標準>>>
一.有關Json
Json作為一種輕量級的交換數據形式,由于其自身的一些優良特性比如包含有效信息多,易于閱讀和解析而廣受碼農以及架構的喜愛。使用Json的場景也很多,比如讀取解析系列化的Json格式的數據,我們需要將一個Json的字符串解析成我們想要的對象或者提取我們需要的信息。
稍稍接觸Json數據解析的應該都會比較熟悉通過一些工具庫比如fastjson或者gons轉換為我們想要的對象。舉例將如下的字符串解析為一個Person對象。數據量大的時候fastjson才快,小數拒量gson要快一些。
這時候我們需要聲明一個與此Json能夠映射的對象,好比這樣
這是解析Json數據的一種比較繁瑣的方式,這種方式有時候是必不可少的,因為我們不僅要解析json數據,同時還需要用到解析后的對象做后續的業務處理。
但是,有時候我們根本用不上這個對象,只想提取出需要的信息,比如插入到數據庫,或者提取出一個字段作為一個判定標識。這時候,我們可以通過如下介紹的方式來實現即可,不需要通過新建對象的方式。
下面主要介紹兩種方式,分別是通過fastjson和gson的方式實現。
二.通過FastJson實現
FastJson是阿里巴巴發布的一個Json處理工具包,其特點就是解析快,效率高,而且支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省等。下面我們看看借助FastJson我們如何提取出我們想要的信息
-
通過靜態方法parse,將字符串解析為一個Object對象
-
將返回的jsonObj強轉為一個Map集合
-
在map集合中獲取需要的信息,比如提取出field1對應的value1
-
解析出來的Object對象其實就是一個map集合,這里的filed1就是map中的key,value1就是map集合中的value
-
對于像fieldContext本身就是一個嵌套的map集合,我們可以從fieldContext的值中再解析拆為map集合
?
三.通過Gson實現?
1.轉map一種寫法
?Gson gson = new GsonBuilder().enableComplexMapKeySerialization().create();?
Map<String,String> mapjson = gson.fromJson(jsonorder, new TypeToken<LinkedHashMap<String,String>>(){}.getType()); ?
2.處理時間格式寫法
??Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();?
String json=gson.toJson(list);
3.處理時間,空值集合對象,否則空值自動截掉
Gson gson = new GsonBuilder().serializeNulls().enableComplexMapKeySerialization().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
String json=gson.toJson(list);
GSON是Google開發的Java API,主要用途為序列化Java對象為JSON字符串,或反序列化JSON字符串成Java對象。
相比較于FastJson,在實現我們前面提到的提取信息的實現細節上會有一些不同。
4.如下處理
-
創建一個Gson對象
-
調用Gson的fromJson方法將字符串直接解析成HashMap類型,這一點要比FastJson來的更加快捷
-
后面的用法與使用FastJson解析數據一致,也是從Map中提取對應字段的值
轉載于:https://my.oschina.net/u/1054538/blog/1576213
總結
以上是生活随笔為你收集整理的fastJson,gosn使用小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Blogengine-BlogRoll的
- 下一篇: Python 2.7.10安装pycur