Heim  >  Artikel  >  Java  >  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)

黄舟
黄舟Original
2017-03-09 10:04:501923Durchsuche

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,List36ee8f7418bd46bbf580ced6560b65cf,Listf7e83be87db5cd2d9a8a0b8117b38cd4,Lista06c5c2dfccfdea21bf0b155d9343663)

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,List36ee8f7418bd46bbf580ced6560b65cf,Listf7e83be87db5cd2d9a8a0b8117b38cd4,Lista06c5c2dfccfdea21bf0b155d9343663)

String jsonStrng = JSON.toJSONString(object);

2. fastjson analysiert JSON-Strings in vier Typen

1

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

2. Liste36ee8f7418bd46bbf580ced6560b65cf

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

3 ;

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

4. Lista06c5c2dfccfdea21bf0b155d9343663>

Code kopieren Der Code lautet wie folgt:

List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});
(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();//用来换行 
  } 
 } 
}

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-郭富城

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

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":"郭富城"}

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

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-"郭富城"


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!

Stellungnahme:
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