JSON (JavaScript Object Notation) es un formato de intercambio de datos ligero que utiliza un formato de texto completamente independiente del lenguaje y es un formato de intercambio de datos ideal. Mientras tanto, JSON es un formato nativo de JavaScript, lo que significa que no se requiere una API o kit de herramientas especial para procesar datos JSON en JavaScript.
Muchas herramientas de construcción y análisis de JSON bajo Java se publican en www.json.org. Entre ellos, Org.Json y JSON-LIB son relativamente simples. Los dos son similares en uso, pero todavía hay algunas diferencias. A continuación, presentaremos un ejemplo del método de usar org.json para construir y analizar los datos JSON.
Para una explicación detallada de los métodos de construcción y análisis de datos JSON utilizando JSON-LIB, consulte mi publicación de blog anterior: dos métodos para construir y analizar datos JSON utilizando Java (Explicación detallada 1)
1. Introducción
El paquete Org.json es otro paquete utilizado para convertir frijoles, colecciones, mapas, matrices Java y XML y JSON. Se utiliza principalmente para analizar los datos JSON. Tiene explicaciones detalladas en su sitio web oficial http://www.json.org/. Si está interesado, puede estudiarlo.
2. Descargue el paquete de dependencia de jar
Puedes descargarlo aquí
3. Introducción a los métodos básicos
Dado que org.json no puede convertirse directamente en frijoles, debe convertirse a través de mapas. Por conveniencia, he escrito una clase de herramientas jsonhelper aquí, que se utiliza para convertir JSON con mapa y frijoles.
paquete com.json; import java.lang.reflect.method; import java.text.parseException; import java.util.hashmap; import java.util.iterator; import java.util.map; import ojson.jsonexception; import Convertir el mapa a Javabean* 3: Convertir jsonObject al mapa, javabean** @author alexia*/public class jsonHelper {/*** Convertir javabean al mapa** @param javabean* javabean* @return map object*/public static mappap (objeto javabean) {resultado de mapa = new Hashmap (); Métodos [] javabean.getClass (). getDeClaredMethods (); for (método método: métodos) {try {if (método.getName (). startswith ("get")) {string field = método.getName (); field = field = field.substring (field.indexof ("get") + 3); field.tolowercase (). Charat (0) valor = método.invoke (javabean, (objeto []) null); resultado mapa estático tomap (string jsonstring) lanza JSonexception {jsonObject jsonObject = new jsonObject (jsonstring); map result = new HashMap (); iterator iterator = jsonObject.Keys (); string key = null; string value = null; while (iterator.hasnext ()) {key = (string) iterator.Next (); jsonObject.getString (clave); resultado.put (clave, valor);} return resultado;}/*** Convertir Javabean a JSONObject (transferir a través de map)** @param bean* javabean* @return json objeto*/public static jsonObject toJson (objeto bean) {return new jSonObject (tomap (bean));}/*** Convertir mapa a JAVAmEAmEAmEAmEAmEAmEAmEAmEAmEAmEAmEAmEAmEn javabean* javabean* @param data* map data*/public static object toJavabean (object javabean, data de map) {método [] métodos = javabean.getClass (). getDeclaredMethods (); para (método: métodos: métodos) {try {if (método.getName (). Startswith ("set")) {string campo = campo de string = campo de método =) field.substring (field.indexof ("set") + 3); field = field.tolowerCase (). charat (0) + field.substring (1); métod.invoke (javabean, nuevo objeto [] {data.get (campo)});}} catch (excepción e) {}} return javabean;}/*** jSonObject to jSonObject to jSonObject to jSonObject to jSonObject to jSonObeH Javabean* @return Json Object* @throws parseException* JSON EXCEPCIÓN DE PARSING* @throws JSonException*/public static void toJavabean (objeto javabean, string jsonstring) lanza parseexception, jsonexception {jsonObject jsonObject = new jsonObject (jsonstring); map map = tomap (jsonObject.ToString ()); tojavabean (javabean, map);}} 4. Ejemplo de demostración
Aquí hay algunos métodos comunes básicos para probar
paquete com.json; import java.Text.ParseException; import java.util.arrayList; import java.util.hashmap; import java.util.list; import java.util.map; import og.json.jsonarray; import og.json.jsonexception; import og.json.jsonObject;/*** Úsele a JSON-LIB Datos JSON*** @author Alexia* @Date 2013/5/23**/public class OrgjSontest {/*** Construct Json Data** @return* @throws JSOnException*/public static string buildjson () lanza JSOnException {// JSON Format Data Parsing Object JoNObject Jo = New JSonObject (); // Map <string, string> map1 = new Hashmap <String, String> (); map1.put ("name", "alexia"); map1.put ("sexo", "femenino"); map1.put ("edad", "23"); map <string, string> map2 = new Hashmap <string, string> (); map2.put ("name", "edward"); "masculino"); map2.put ("edad", "24"); list <s map> list = new ArrayList <Map> (); list.add (map1); list.add (map2); empleado empleado = nuevo empleado (); empleado.setName ("wjl"); empleado.setSex ("femenino"); empleado.setage (24); // mapa transmitido a datajes jonarray JSONArray();ja.put(map1);System.out.println("JSONArray object data format: ");System.out.println(ja.toString());// Convert Javabean to Json data (requires Map transit) JSONObject jo1 = JsonHelper.toJSON(employee);System.out.println("/nJson data format only contains Employee object: "); System.out.println (Jo1.ToString ()); // Construye datos JSON, que incluye un mapa y un datos JSON que contienen objeto de empleado Jo.put (" Map ", JA); Jo.put (" Empleado ", Jo1.ToString ()); System.out.Println ("/n Format de datos JSON final: "); Jo.ToString ();}/*** Parse JSON Data** @param jsonstring* JSON Data String* @throws JSonException* @throws parseException*/public static void parsejson (string jsonstring) lanza jsonexception, parseException {jsonObject Jo = new jsonObject (jSonstring); jSonarray Ja = Jo.getjsonArray ("map"); system.out.println ("/n analiza datos JSON en map:"); System.out.println ("Nombre:" + Ja.getJsonObject (0) .GetString ("Nombre") + "Sex:" + JA.GetJsonObject (0) .getstring ("Sexo) +" Age: " +" + ja.getjsonObject (0) .getInt ("edad")); string jSonstr = Jo.getString ("Empleado"); Empleado emp = nuevo Empleado (); jsonhelper.tojavabean (emp, jsonstr); system.out.println ("/n parse json datos en el objeto del empleado:"); system.out.println ("name:" + emp.getName ( + ") emp.getsex () + "edad:" + emp.getage ());}/*** @param args* @throws jSonexception* @throws parseException*/public static void main (string [] args) lanza jsonexception, parseException {// tODO auto-generado método generado tortudo (buildjson ());}}}}}}}}}}}} Los resultados de la operación son los siguientes
5. Comparación con JSON-LIB
El uso de JSON-LIB y org.json es casi el mismo. He resumido dos diferencias:
1. Org.json es mucho más ligero que JSON-LIB. El primero no confía en ningún otro paquete de JAR, mientras que los segundos depende de Lang, registro, beanutilos, colecciones y otros componentes de Ezmorph y Commons.
2. JSON-LIB es mucho más conveniente que org.json al construir frijoles y analizar los frijoles. JSON-LIB puede convertirse directamente con frijoles, mientras que org.json no puede convertirse directamente con frijoles y requiere mapas como tránsito. Si convierte los frijoles en datos JSON, primero debe convertir los frijoles en mapas y luego convertir los mapas en JSON, lo cual es más problemático.
En resumen, la misma oración sigue siendo lo mejor para ti. Todos deben elegir qué método usar para analizarlo según sea necesario. Finalmente, presentaré dos herramientas para analizar los datos de JSON: una es la herramienta en línea JSON Edit (http://braincast.nl/samples/jsoneditor/); ¡El otro es Eclipse Plugin Json Tree Analyzer, los cuales son muy útiles y se recomiendan que todos los usen!
Lo anterior es el conocimiento relevante de los dos métodos (explicación detallada) utilizada por el editor para presentarle sobre Java para construir y analizar datos JSON. ¡Espero que te sea útil!