FAQ Fastjson


Liste FAQ Fastjson

1. Comment obtenir fastjson ?


Vous pouvez télécharger fastjson à l'endroit suivant :

  • Référentiel central maven : http://central.maven.org/maven2/com/alibaba / fastjson/
  • Sourceforge.net : https://sourceforge.net/projects/fastjson/files/
  • Comment configurer les dépendances fastjson dans maven La dernière version de fastjson sera publiée dans l'entrepôt central maven, et vous peut s'appuyer directement sur lui.
<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.2.21</version>
</dependency>

version Android

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.55.android</version>
</dependency>

2. Quelles sont les principales API de fastjson ?

La classe d'entrée de fastjson est com.alibaba.fastjson.JSON, et l'API principale est JSON.toJSONString et parseObject.

package com.alibaba.fastjson;
public abstract class JSON {
      public static final String toJSONString(Object object);
      public static final <T> T parseObject(String text, Class<T> clazz, Feature... features);
}


Sérialisation :

String jsonString = JSON.toJSONString(obj);

Désérialisation :

VO vo = JSON.parseObject("...", VO.class);

Désérialisation générique :

import com.alibaba.fastjson.TypeReference;List<VO> list = JSON.parseObject("...", new TypeReference<List<VO>>() {});

3. exemples

fastj Exemples d'utilisation de son Regardez ici : Exemples- DataBind

4. Quelles sont les performances de fastjson ?

Fastjson est actuellement la bibliothèque json la plus rapide du langage Java, plus rapide que Jackson, qui prétend être la plus rapide. Consultez les résultats des tests indépendants tiers ici : comparaison des performances de fastjson.

Lorsque vous effectuez vos propres tests de performances, désactivez la fonction de détection de référence circulaire.

JSON.toJSONString(obj, SerializerFeature.DisableCircularReferenceDetect)VO vo = JSON.parseObject("...", VO.class, Feature.DisableCircularReferenceDetect)

Voici l'évaluation des performances de fastjson par l'auteur de Jackson cowtowncoder et d'autres : https://groups.google.com/forum/#!topic/java-serialization-benchmarking/8eS1KOquAhw

5. ratio Et qu'en est-il de Gson ?

fastjson est environ 6 fois plus rapide que gson. Les résultats des tests sont ici : Comparaison des tests de performances. Le g de gson peut être l'abréviation de pinyin « tortue », une bibliothèque json à vitesse de tortue.

6. Fastjson peut-il fonctionner sur Android ?

fastjson a une version spéciale pour Android, qui supprime les fonctions inhabituelles. Le nombre d'octets occupés par jar est plus petit. L'adresse de la branche git est : https://github.com/alibaba/fastjson/tree/android.

7. La sérialisation fastjson doit-elle configurer la sérialisation des beans java comme json-lib ?

Non, la sérialisation et la désérialisation de fastjson ne nécessitent pas de configuration particulière. La seule exigence est que la classe que vous sérialisez soit conforme à la spécification du bean Java.

8.

La désérialisation peut reconnaître automatiquement les formats de date suivants :

  • Format de date ISO-8601
  • aaaa-MM-jj
  • aaaa-MM-jj HH:mm:ss
  • aaaa-MM-jj HH:mm:ss . SSS
  • Millisecond Number
  • Millisecond Number String
  • .NET JSON Date Format
  • new Date(198293238)

9.

Vous pouvez utiliser SimplePrePropertyFilter pour filtrer les champs, voir ici pour plus de détails : https://github.com/alibaba/fastjson/wiki/%E4%BD%BF%E7%94%A8SimplePropertyPreFilter%E8%BF%87%E6% BB% A4%E5%B1%9E%E6%80%A7

Pour une introduction détaillée à la sérialisation personnalisée, voir ici : Sérialisation personnalisée Fastjson

10 Lorsque l'objet a une référence, le résultat sérialisé ne sera pas. affiché dans le navigateur Support, que dois-je faire ?

Utilisez la propriété SerializerFeature.DisableCircularReferenceDetect pour désactiver la détection et la génération de références. Par exemple :

JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS")

11. IE 6 ne prend pas en charge JSON avec les chaînes chinoises, que dois-je faire ?

fastjson fournit la configuration BrowserCompatible. Après l'avoir ouvert, tous les chinois seront sérialisés au format uXXXX. Le nombre d'octets sera supérieur, mais il est compatible avec IE 6.

JSON.toJSONString(obj, SerializerFeature.UseISO8601DateFormat);

12. Comment fastjson gère les objets surdimensionnés et le texte JSON surdimensionné

fastjson fournit l'API Stream, voir ici pour plus de détails Fastjson Stream api

13 Utilisez @JSONField pour personnaliser la sérialisation

fastjson fournit l'annotation d'utilisation. personnalise les fonctions de sérialisation et de désérialisation. Fastjson JSONField