激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java中fastjson生成和解析json數據(序列化和反序列化數據)

java中fastjson生成和解析json數據(序列化和反序列化數據)

2020-08-05 11:27PointNet Java教程

本篇文章主要介紹了java中fastjson生成和解析json數據(序列化和反序列化數據),具有一定的參考價值,感興趣的小伙伴們可以參考一下。

本文講解2點

1. fastjson生成和解析json數據

(舉例:4種常用類型:JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>)

2.通過一個android程序測試fastjson的用法。

fastjson簡介:

Fastjson是一個Java語言編寫的高性能功能完善的JSON庫。fastjson采用獨創的算法,將parse的速度提升到極致,超過所有json庫,包括曾經號稱最快的jackson。并且還超越了google的二進制協議protocol buf。Fastjson完全支持http://json.org的標準,也是官方網站收錄的參考實現之一。支持各種JDK類型。包括基本類型、JavaBean、Collection、Map、Enum、泛型等。支持JDK 5、JDK 6、Android、阿里云手機等環境。

一. fastjson生成json字符串(JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>)

java" id="highlighter_723923">
?
1
String jsonStrng = JSON.toJSONString(object);

二. fastjson 解析json字符串為四種類型

1. JavaBean

?
1
Person person = JSON.parseObject(jsonString, Person.class);

2. List<JavaBean>

?
1
List<Person> listPerson =JSON.parseArray(jsonString, Person.class);

3. List<String>

?
1
List<String> listString = JSON.parseArray(jsonString, String.class);

4. List<Map<String,Object>>

 

復制代碼 代碼如下:

List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){}); 

 

(注意:此處可看出fastjson反射機制比gson更準確, id = 1001 通過fastjson反射仍是 id = 1001 , 而通過gson反射結果 為 id =1001.0 , 

JSON解析器fastjson(阿里巴巴出品,版本1.1.26),如果定義了JSONObject為{"JACKIE_ZHANG":"張學友","ANDY_LAU":"劉德華","LIMING":"黎明","Aaron_Kwok":"郭富城"},那么讀取值時,KEY順序無序,測試代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import comalibabafastjsonJSONObject;
/**
 * Created by wangzhenfei on 14-4-
 */
public class FastJsonTest {
 public static void main(String[] args){
  String jsonStr = "{\"JACKIE_ZHANG\":\"張學友\",\"ANDY_LAU\":\"劉德華\",\"LIMING\":\"黎明\",\"Aaron_Kwok\":\"郭富城\"}" ;
 
 
  //做5次測試
  for(int i=0,j=5;i<j;i++)
  {
   JSONObject jsonObject = JSONObjectparseObject(jsonStr) ;
   for(javautilMapEntry<String,Object> entry:jsonObjectentrySet()){
    Systemoutprint(entrygetKey()+"-"+entrygetValue()+"\t");
   }
   Systemoutprintln();//用來換行
  }
 }
}

運行結果:

?
1
2
3
4
5
LIMING-黎明 Aaron_Kwok-郭富城JACKIE_ZHANG-張學友ANDY_LAU-劉德華
Aaron_Kwok-郭富城 ANDY_LAU-劉德華LIMING-黎明JACKIE_ZHANG-張學友
Aaron_Kwok-郭富城 JACKIE_ZHANG-張學友ANDY_LAU-劉德華LIMING-黎明
LIMING-黎明 ANDY_LAU-劉德華JACKIE_ZHANG-張學友Aaron_Kwok-郭富城
JACKIE_ZHANG-張學友 LIMING-黎明ANDY_LAU-劉德華Aaron_Kwok-郭富城

解決辦法:定義為JSONArray,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import comalibabafastjsonJSONArray;
 
/**
 * Created by wangzhenfei on 14-4-
 */
public class FastJsonTest {
 public static void main(String[] args){
  String jsonStr = "[{\"JACKIE_ZHANG\":\"張學友\"},{\"ANDY_LAU\":\"劉德華\"},{\"LIMING\":\"黎明\"},{\"Aaron_Kwok\":\"郭富城\"}]" ;
  //做5次測試
  for(int i=0,j=5;i<j;i++)
  {
   JSONArray jsonArray = JSONArrayparseArray(jsonStr);
 
   for(int k=0;k<jsonArraysize();k++){
    Systemoutprint(jsonArrayget(k) + "\t");
   }
   Systemoutprintln();//用來換行
  }
 }
}

運行結果為:

?
1
2
3
4
5
{"JACKIE_ZHANG":"張學友"} {"ANDY_LAU":"劉德華"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}
{"JACKIE_ZHANG":"張學友"} {"ANDY_LAU":"劉德華"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}
{"JACKIE_ZHANG":"張學友"} {"ANDY_LAU":"劉德華"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}
{"JACKIE_ZHANG":"張學友"} {"ANDY_LAU":"劉德華"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}
{"JACKIE_ZHANG":"張學友"} {"ANDY_LAU":"劉德華"}{"LIMING":"黎明"}{"Aaron_Kwok":"郭富城"}

如果就想要定義為JSONObject,而不是JSONArray,可以選用其他JSON解析器,個人推薦使用google的gson,文檔明顯比fastjson好很多(從這里可以看出阿里巴巴和谷歌的差距):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import comgooglegsonJsonElement;
import comgooglegsonJsonObject;
import comgooglegsonJsonParser;
 
/**
 * Created by wangzhenfei on 14-4-
 */
public class FastJsonTest {
 public static void main(String[] args){
  String jsonStr = "{\"JACKIE_ZHANG\":\"張學友\",\"ANDY_LAU\":\"劉德華\",\"LIMING\":\"黎明\",\"Aaron_Kwok\":\"郭富城\"}" ;
  //做5次測試
  for(int i=0,j=5;i<j;i++)
  {
   JsonObject jsonObject = (JsonObject) new JsonParser()parse(jsonStr);
   for(javautilMapEntry<String,JsonElement> entry:jsonObjectentrySet()){
    Systemoutprint(entrygetKey()+"-"+entrygetValue()+"\t");
   }
   Systemoutprintln();//用來換行
  }
 }
}

運行結果:

?
1
2
3
4
5
JACKIE_ZHANG-"張學友" ANDY_LAU-"劉德華" LIMING-"黎明" Aaron_Kwok-"郭富城"
JACKIE_ZHANG-"張學友" ANDY_LAU-"劉德華" LIMING-"黎明" Aaron_Kwok-"郭富城"
JACKIE_ZHANG-"張學友" ANDY_LAU-"劉德華" LIMING-"黎明" Aaron_Kwok-"郭富城"
JACKIE_ZHANG-"張學友" ANDY_LAU-"劉德華" LIMING-"黎明" Aaron_Kwok-"郭富城"
JACKIE_ZHANG-"張學友" ANDY_LAU-"劉德華" LIMING-"黎明" Aaron_Kwok-"郭富城"

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/goody9807/p/4244862.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 久久国产成人午夜av浪潮 | 日韩在线播放一区二区 | 中文字幕在线播放不卡 | 亚洲性生活免费视频 | 日日噜噜噜噜久久久精品毛片 | 视频一区二区国产 | 国产不卡av在线 | 毛片在线视频观看 | 2017亚洲男人天堂 | 欧美日韩在线中文字幕 | 精品一区免费 | 蜜桃视频在线入口www | 久久精品毛片 | 一区二区三区欧美精品 | 国产精品视频2021 | 国产黄色毛片 | 欧美性生交xxxxx免费观看 | 亚洲精品一区国产精品丝瓜 | 日本中文字幕高清 | 国产精品久久国产精品 | 一级片九九 | 91香蕉影视 | 精品一区二区三区免费爱 | 九九热在线视频观看 | 特一级毛片 | 国产精品www| 国产一区二区视频观看 | www.99热精品 | 日本在线观看一区二区 | 久久久久久久爱 | 深夜视频在线观看 | 亚洲人成综合第一网 | 久草中文网 | 九九精品久久 | 久久精品中文字幕一区二区三区 | 麻豆视频在线播放 | 日本aaaa片毛片免费观蜜桃 | 亚洲午夜不卡 | 蜜桃网在线观看 | 色av网址| 精品一区二区三区欧美 |