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