Cet article analyse trois façons d'analyser JSON en fonction de Java. Partagez-le pour votre référence, comme suit:
1. Qu'est-ce que JSON?
JSON est une structure de données qui remplace XML. Par rapport à XML, il est plus petit mais a de bonnes capacités de description. En raison de sa petitesse, le réseau transmet des données pour réduire plus de trafic et accélérer.
JSON est une série de chaînes, mais les éléments sont marqués de symboles spécifiques.
{} Les supports doubles représentent des objets
[] les supports représentent le tableau
"" En double guillemets sont des attributs ou des valeurs
: Le côlon indique que le second est la valeur du premier (cette valeur peut être une chaîne, un nombre ou un autre tableau ou objet)
Donc {"nom": "Michael"} peut être compris comme un objet contenant le nom de Michael
Et [{"name": "Michael"}, {"name": "Jerry"}] signifie un tableau contenant deux objets
Bien sûr, vous pouvez également utiliser {"nom": ["Michael", "Jerry"]} pour simplifier ce qui précède, qui est un objet avec un tableau de noms.
2. Analyse JSON traditionnelle: analyse JSON
1. Générer la chaîne JSON
public static String createjSontring (string key, object value) {jsonObject jsonObject = new JSONObject (); jsonObject.put (clé, valeur); return jsonObject.toString ();}2. Analyser les cordes JSON
Il est divisé en les trois situations suivantes: une Javabean, un tableau de liste et un tableau de liste avec carte imbriquée:
Importer java.util.arraylist; import java.util.hashmap; import java.util.iterator; import java.util.list; import org.json.util.map; import org.json.jsonArray; Import org.json.jsonobject; Importer com.android.myson.domain.person; / ** * Terminer les parits de la classe json * / JSontools {public static Person getSerson (string key, String jSontring) {personne personne = new personne (); essayez {jsonObject jsonObject = new JSONObject (jsonstring); JSONObject PersonObject = JSONObject.getJSonObject ("Person"); Person.setid (PersonObject.getInt ("id")); Person.SetName (PersonObject.getString ("Name")); Person.SetAddress (PersonObject.getString ("adresse")); } catch (exception e) {// todo: gère exception} personne de retour; } public static list getPersons (string key, string jSontring) {list list = new ArrayList (); essayez {jsonObject jsonObject = new JSONObject (jsonstring); // Renvoie le tableau de JSON JSONArray JSONArray = JSONObject.getJSonArray (Key); for (int i = 0; i <jsonArray.length (); i ++) {jsonObject jsonObject2 = jsonArray.getjsonObject (i); Personne personne = new personne (); personne.setid (jsonObject2.GetInt ("id")); personne.setName (jsonObject2.GetString ("name")); personne.setAddress (jsonObject2.GetString ("adresse")); list.add (personne); }} catch (exception e) {// todo: greg exception} return list; } public static list getList (string key, string jSontring) {list list = new ArrayList (); essayez {jsonObject jsonObject = new JSONObject (jsonstring); JSONArray JSONArray = JSONObject.getJSonArray (Key); for (int i = 0; i <jsonArray.length (); i ++) {String msg = jsonArray.getString (i); list.add (msg); }} catch (exception e) {// todo: greg exception} return list; } public static list> listKeymaps (string key, string jSontring) {list> list = new ArrayList> (); essayez {jsonObject jsonObject = new JSONObject (jsonstring); JSONArray JSONArray = JSONObject.getJSonArray (Key); for (int i = 0; i <jsonArray.length (); i ++) {jsonObject jsonObject2 = jsonArray.getjsonObject (i); Map map = new HashMap (); Iterator iterator = jsonObject2.Keys (); while (iterator.hasnext ()) {String json_key = iterator.next (); Objet json_value = jsonObject2.get (json_key); if (json_value == null) {json_value = ""; } map.put (json_key, json_value); } list.add (map); }} catch (exception e) {// todo: greg exception} return list; }}3. Analyse GSON de JSON
1. Générer la chaîne JSON
import com.google.gson.gson; public class JSonUtils {public static String createjsonObject (objet obj) {gson gson = new gson (); String str = gson.tojson (obj); retour STR; }}2. Analyser JSON
Importer java.util.arraylist; import java.util.list; import java.util.map; import com.google.gson.gson; import com.google.gson.reflect.typelok ;; public gsontools {public gSontools () {// to-aterting atenerated Stub} / ** * @param * @param jsacringation @Parated Construct CLS * @return * / public static t getPerson (String jSontring, classe CLS) {t t = null; essayez {gson gson = new gson (); t = gson.fromjson (jsonstring, CLS); } catch (exception e) {// todo: great exception} return t; } / ** * Utilisez GSON pour analyser la liste * * @param * @param jsonstring * @param cls * @return * / public static list getPersons (String jSontring, cls cls) {list list = new ArrayList (); essayez {gson gson = new gson (); list = gson.fromjson (jsonstring, new TypeToken> () {} .getType ()); } catch (exception e) {} liste de retour; } / ** * @param jsonstring * @return * / public static list getlist (String jSontring) {list list = new ArrayList (); essayez {gson gson = new gson (); list = gson.fromjson (jsonstring, new TypeToken> () {} .getType ()); } catch (exception e) {// todo: greg exception} return list; } public static list> listKeymaps (string jSontring) {list> list = new ArrayList> (); essayez {gson gson = new gson (); list = gson.fromjson (jsonstring, new TypeToken >> () {} .getType ()); } catch (exception e) {// todo: greg exception} return list; }}4. Fastjson Paring
import java.util.arraylist; import java.util.list; import java.util.map; import com.alibaba.fastjson.json; import com.alibaba.fastjson.typereference; public class jsontool {public static t getperson (string jSontring, classe cls) {t t = null; essayez {t = json.parseObject (jsonstring, cls); } catch (exception e) {// todo: great exception} return t; } public static list getPersonList (String jSontring, classe CLS) {list list = new ArrayList (); essayez {list = json.parsarray (jsonstring, cls); } catch (exception e) {// todo: greg exception} return list; } public static list> getPersonListMap1 (String jSontring) {list> list = new ArrayList> (); essayez {list = json.parseObject (jsonstring, new typereference >> () {} .getType ()); } catch (exception e) {// todo: greg exception} return list; }}Résumer:
Pour les appareils mobiles, en particulier dans le cas d'un environnement de réseau médiocre et des limites de trafic, JSON économisera le trafic et aura une efficacité de transmission plus élevée par rapport à la transmission des données du format XML. Parmi ces trois méthodes analytiques, Fastjson est le plus efficace et est recommandé.
PS: Concernant le fonctionnement de JSON, voici quelques outils JSON pratiques pour votre référence: Outils de vérification, d'inspection, d'embellissement et de formatage du code JSON en ligne: Outil de mise en forme en ligne JSON : Outil de conversion mutuelle XML / JSON en ligne: Code JSON en ligne Formatage / embellissement / compression / édition / conversion des outils: Outils de compression / échappement JSON en ligne: C Style de langue C / HTML / CSS / JSON Code Formatage et Outils d'embellissement:
http://tools.vevb.com/code/json
http://tools.vevb.com/code/jsonformat
http://tools.vevb.com/code/xmljson
http://tools.vevb.com/code/jsoncodeformat
http://tools.vevb.com/code/json_yasuo_trans
http://tools.vevb.com/code/ccode_html_css_json
J'espère que cet article sera utile à la programmation Java de tous.