Heim > Java > javaLernprogramm > Detaillierte Einführung in FastJSON in Java zum Generieren und Analysieren von JSON-Daten (Serialisierungs- und Deserialisierungsdaten)

Detaillierte Einführung in FastJSON in Java zum Generieren und Analysieren von JSON-Daten (Serialisierungs- und Deserialisierungsdaten)

黄舟
Freigeben: 2017-03-09 10:04:50
Original
1983 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich FastJSON zum Generieren und Analysieren von JSON-Daten (Serialisierungs- und Deserialisierungsdaten) vorgestellt. Interessierte Freunde können darauf verweisen.

Dieser Artikel erklärt 2 Punkte:

1. Fastjson generiert und analysiert JSON-Daten

(Beispiel: 4 gängige Typen :JavaBean,List,List,List)

2. Testen Sie die Verwendung von fastjson über ein Android-Programm.

Einführung in fastjson:

Fastjson ist eine leistungsstarke und vollständige JSON-Bibliothek, die in der Java-Sprache geschrieben ist. FastJSON verwendet einen Originalalgorithmus, um die Analysegeschwindigkeit auf das Äußerste zu erhöhen und übertrifft alle JSON-Bibliotheken, einschließlich Jackson, das einst als die schnellste galt. Und es übertrifft auch das Binärprotokoll-Protokoll buf von Google. Fastjson unterstützt den Standard von http://www.php.cn/ vollständig und ist auch eine der Referenzimplementierungen auf der offiziellen Website. Unterstützt verschiedene JDK-Typen. Einschließlich Basistypen, JavaBean, Collection, Map, Enum, Generics usw. Unterstützt JDK 5, JDK 6, Android, Alibaba Cloud-Mobiltelefone und andere Umgebungen.

1. fastjson generiert einen JSON-String (JavaBean,List,List,List)

String jsonStrng = JSON.toJSONString(object);
Nach dem Login kopieren

2. fastjson analysiert JSON-Strings in vier Typen

1

Person person = JSON.parseObject(jsonString, Person.class);
Nach dem Login kopieren

2. Liste

List<Person> listPerson =JSON.parseArray(jsonString, Person.class);
Nach dem Login kopieren

3 ;

List<String> listString = JSON.parseArray(jsonString, String.class);
Nach dem Login kopieren

4. List>

Code kopieren Der Code lautet wie folgt:

List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});
Nach dem Login kopieren
(Hinweis: Hier ist zu sehen, dass der FastJSON-Reflexionsmechanismus genauer ist als der GSON-Reflexionsmechanismus. id = 1001 ist immer noch id = 1001 durch FastJson-Reflexion und das Ergebnis durch Gson-Reflexion ist id =1001.0 ,


JSON-Parser fastjson (hergestellt von Alibaba, Version 1.1.26), wenn das JSONObject als {"JACKIE_ZHANG": "Jacky Cheung", "ANDY_LAU": "Andy" definiert ist Lau, „LIMING“: „Dawn“, „Aaron_Kwok“: „Aaron Kwok“}, dann ist beim Lesen des Werts die KEY-Reihenfolge nicht in Ordnung, der Testcode:

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();//用来换行 
  } 
 } 
}
Nach dem Login kopieren

Laufergebnis:

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-郭富城
Nach dem Login kopieren

Lösung: Als JSONArray definiert, lautet der Code wie folgt:

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();//用来换行 
  } 
 } 
}
Nach dem Login kopieren

Das laufende Ergebnis ist:

{"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":"郭富城"}
Nach dem Login kopieren

Wenn Sie es definieren möchten als JSONObject anstelle von JSONArray, Sie können andere JSON-Parser auswählen, die persönlich empfohlen werden. Mit Googles GSON ist die Dokumentation offensichtlich viel besser als FastJSON (von hier aus können Sie die Lücke zwischen Alibaba und Google erkennen):

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();//用来换行 
  } 
 } 
}
Nach dem Login kopieren

Laufergebnisse:

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-"郭富城"
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in FastJSON in Java zum Generieren und Analysieren von JSON-Daten (Serialisierungs- und Deserialisierungsdaten). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage