JSON (Notation d'objet JavaScript) est un format d'échange de données léger qui utilise un format de texte entièrement indépendant du langage et est un format d'échange de données idéal. Pendant ce temps, JSON est un format natif JavaScript, ce qui signifie qu'aucune API ou boîte à outils spéciale n'est requise pour traiter les données JSON en JavaScript.
De nombreux outils de construction et d'analyse JSON sous Java sont publiés sur www.json.org. Parmi eux, Org.json et Json-lib sont relativement simples. Les deux sont similaires, mais il y a encore quelques différences. Ensuite, nous présenterons un exemple de la méthode d'utilisation d'Org.json pour construire et analyser les données JSON.
Pour une explication détaillée des méthodes de construction et d'analyse des données JSON à l'aide de JSON-Lib, veuillez vous référer à mon article de blog précédent: deux méthodes de construction et d'analyse des données JSON à l'aide de Java (explication détaillée 1)
1. Introduction
Le package org.json est un autre package utilisé pour convertir les haricots, les collections, les cartes, les tableaux Java et XML et JSON. Il est principalement utilisé pour analyser les données JSON. Il a des explications détaillées sur son site officiel http://www.json.org/. Si vous êtes intéressé, vous pouvez l'étudier.
2. Téléchargez le package de dépendance au pot
Vous pouvez le télécharger ici
3. Introduction aux méthodes de base
Étant donné que org.json ne peut pas se convertir directement en haricots, il doit être converti via des cartes. Pour plus de commodité, j'ai écrit une classe d'outils JSONhelper ici, qui est utilisée pour convertir JSON avec MAP et Beans.
package com.json; importer java.lang.reflect.method; import java.text.parseException; import java.util.hashmap; import java.util.iterator; import org.json.jsonobject; / *** * 1: convert javabean to maph, jsonobject; / *** * 1: convert javabean to map Map to javabean * 3: convertir jsonObject to map, javabean * * @author alexia * / public class jsonhelper {/ *** convert javabean en map * * @param javabean * javabean * @return map objet * / public static map tomap (objet javabean) {map result = new hashmap (); méthode [] méthodes = javabean.getClass (). getDeclaredMethods (); for (méthode méthode: méthodes) {try {if (method.getName (). startSwith ("get")) {string field = method.getName (); field = field.subString (champ valeur = méthode.invoke (javabean, (objet []) null); result.put (champ, null == valeur? "": value.toString ());}} catch (exception e) {e.printstackTrace ();}} Retour Result;} / *** Convertin Map Imbrans Map statique tomap (String jSontring) lève JSonexception {jsonObject jsonObject = new JSONObject (jSontring); map result = new HashMap (); String Value = null; while (iterator.hasnext ()) {key = (string) itorator.next (); jsonObject.getString(key);result.put(key, value);}return result;}/*** Convert JavaBean to JSONObject (transfer via Map)* * @param bean* javaBean* @return json object*/public static JSONObject toJSON(Object bean) {return new JSONObject(toMap(bean));}/*** Convert Map to Javabean* * @param javabean * javabean * @param data * map data * / public static objet tojavabean (objet javabean, map data) {méthode [] methods = javabean.getclass (). getDeclaredMethods (); for (méthode méthode: méthodes) {try {if (méthode.getName (). field.substring (field.indexof ("set") + 3); field = field.tolowercase (). Charat (0) + field.substring (1); méthode.invoke (javabean, nouvel objet [] {data.get (fiel javabean * @return json objet * @throws parseException * json analyse exception * @throws jSonException * / public static void tojavabean (objet javabean, string jSontring) lance parseException, jSonexception {jsonObject jsonobject = new JSONOBject (jsonstring); map map = tomap (jsonObject.toString ()); tojavabean (javabean, map);}} 4. Exemple de démonstration
Voici quelques méthodes courantes de base pour tester
package com.json; import java.text.parseException; import java.util.arraylist; import java.util.hashmap; import java.util.list; import java.util.map; import org.json.jsonArray; * @Author Alexia * @Date 2013 / 5/23 * * / classe publique OrgjSontest {/ *** Construire JSON Data * * @ return * @throws jSonexception * / public static String buildjson () lance jSonexception {// json format de données de données de données de données JSONobject jsonee jsonee map = new hashmap <string, string> (); map1.put ("name", "alexia"); map1.put ("sex", "femel"); map1.put ("age", "23"); map <string, string> map2 = new hashmap <string, string> (); map2.put ("name", "edward"); map2.put ("sex", "male"); ". "24"); list <map> list = new ArrayList <Map> (); list.add (map1); list.add (map2); employee employee = new Employee (); employee.setName ("wjl"); employee.setSex ("féminin"); employee.Setage (24); // convertir la carte à jsonarray datajsonArray ja = new JSONArray (); ja.put (Map1); System.out.println ("JSONArray Object Data Format:"); System.out.println (Ja.ToString ()); // convertit JavaBean en JSON Data (nécessite le transit map) JSONOBJECT JO1 = JSONHELPER.TOJSON (Employee); System.out.TRIntLn ("/ njon Format (Employee); System.out.TRIntLn (" / njon Format (Employee); System.out.TrINT.Println ("/ njon Format (Employee); System.out.TrINT.Println (" / njon Format (Employee); System.out.TrINT. Objet employé: "); System.out.println (jo1.toString ()); // Construire des données JSON, y compris une carte et des données JSON contenant un objet employé Jo.put (" map ", ja); jo.put (" employee ", json le format de données JSON final: "); System.out.println (jo.toString ()); return Jo.ToString ();} / *** Parse JSON Data * * @param jsonstring * JSON Data String * @throws jSonexception * @throws parseException * / public static void parsejson (string jSonstraling) lastexception, parseexception {jsonwe JSONObject (JSontring); JSONArray JA = JO.GetJSonArray ("Map"); System.out.println ("/ n parses JSON Data Into Map:"); System.out.println ("Name:" + ja.getjsonObject (0) .getString ("Name") + "Sex" + Ja.GetJS Âge: "+ ja.getjsonObject (0) .getInt (" Âge ")); String jSontr = Jo.getString (" Employee "); Employee Emp = New Employee (); Jsonhelper.tojavabean (Emp, JSontr); System.out.println (" / n Parse Data JSON dans l'employé: "); System.out.out.Println (" Name: "+ Emp. "Sex:" + emp.getSex () + "Age:" + emp.getage ());} / *** @param args * @throws jsonexception * @throws parseException * / public static void Main (String [] args) lance jsonexception, parseException {// todo-généré par StubParsejson (BuildJSon ();}} Les résultats de l'opération sont les suivants
5. Comparaison avec JSON-Lib
L'utilisation de Json-lib et org.json est presque la même. J'ai résumé deux différences:
1. Org.json est beaucoup plus léger que Json-lib. Le premier ne dépend de aucun autre paquet de bocal, tandis que le second dépend de Lang, de l'exploitation forestière, des beanutils, des collections et d'autres composants d'Ezmorph et de Commons.
2. JSON-LIB est beaucoup plus pratique que org.json lors de la construction de haricots et d'analyses de haricots. JSON-LIB peut se convertir directement avec les haricots, tandis que org.json ne peut pas se convertir directement avec les haricots et nécessite des cartes comme transit. Si vous convertissez les haricots en données JSON, vous devez d'abord convertir les haricots en cartes, puis convertir les cartes en JSON, ce qui est plus gênant.
En bref, la même phrase est toujours la meilleure chose pour vous. Tout le monde doit choisir la méthode à utiliser pour l'analyser au besoin. Enfin, je vais présenter deux outils pour analyser les données JSON: l'une est l'outil en ligne JSON EDIT (http://braincast.nl/samples/jsoneditor/); L'autre est le plugin Eclipse JSON Tree Analyzer, qui sont tous deux très utiles et sont recommandés à tout le monde!
Ce qui précède est la connaissance pertinente des deux méthodes (explication détaillée) utilisée par l'éditeur pour vous présenter à propos de Java pour construire et analyser les données JSON. J'espère que cela vous sera utile!