O JSON (JavaScript Object Notation) é um formato leve de troca de dados que usa um formato de texto completamente independente da linguagem e é um formato ideal de troca de dados. Enquanto isso, o JSON é um formato nativo de JavaScript, o que significa que nenhuma API ou kit de ferramentas especial é necessário para processar dados JSON no JavaScript.
Muitas ferramentas de construção e análise de JSON no Java são publicadas em www.json.org. Entre eles, Org.json e Json-Lib são relativamente simples. Os dois são semelhantes em uso, mas ainda existem algumas diferenças. Em seguida, apresentaremos um exemplo do método de usar o org.json para construir e analisar dados JSON.
Para uma explicação detalhada dos métodos de construção e análise de dados JSON usando JSON-LIB, consulte minha postagem anterior do blog: dois métodos de construção e análise de dados JSON usando Java (Explicação Detalhada 1)
1. Introdução
O pacote org.json é outro pacote usado para converter feijões, coleções, mapas, matrizes Java e XML e JSON. É usado principalmente para analisar dados JSON. Ele tem explicações detalhadas em seu site oficial http://www.json.org/. Se você estiver interessado, pode estudá -lo.
2. Faça o download do pacote de dependência JAR
Você pode baixá -lo aqui
3. Introdução aos métodos básicos
Como o org.json não pode se converter diretamente em feijão, ele precisa ser convertido através de mapas. Por conveniência, escrevi uma classe de ferramentas JSONHELPER aqui, usada para converter o JSON com mapa e feijão.
pacote com.json; importar java.lang.reflect.method; importar java.text.parseException; importar java.util.hashmap; importar java.util.iterator; import java.util.map; import org.json.jsonexception; import.json.json.map; Converta o mapa em javabean* 3: Converta JsonObject para mapa, Javabean** @Author Alexia*/public class JSONHELPER {/*** Converta Javabean para mapear** @param javabean* javabean* @return map objeto*/public mapa tomap (objeto javabean) {map {Map javabean.getclass (). getDecLaredMethods (); para (método do método: métodos) {try {if (method.getName (). startSwith ("get")) {string field = method.getName (); field = field.substring (field.IndexOf ("get") + 3); field.substring (1); valor do objeto = method.invoke (javabean, (objeto []) nulo); resultado.put (campo, null == value? "": value.toString ());}}} Catch (exceção e) {e.printStacktrace ();}} result;};}/*** conversado @throws jsonexception*/public static mapa tomap (string jSonstring) lança Jsonexception {jsonObject jsonObject = new jsonObject (JSonstring); mapa resultado = new string (key); iteter = nulador (iTerator = jsonObject.Keys (); iterator.Next (); value = jsonObject.getString (key); resultado.put (chave, valor);} return resultado;}/*** Converta Javabean em jsonObject (transferência via map)** @param bean* javabean* @return JSON Object*/public static JSONOBJECT parajson (objeto) {objeto) {objeto* @Return Json*/público Mapear para javabean** @param javabean* javabean* @param dados* mapa dados*/public objeto estático tojavabean (objeto javabean, mapa dados) {métodos [] métodos = javabean.getclass (). Method.getName (); field = field.substring (field.indexof ("set") + 3); field = field.tolowercase (). Charat (0) + field.substring (1); method.invoke (Javabean, new Object [] {Data.get)}};}}; Javabean** @param bean* javabean* @return json objeto* @throws parseException* json analisando exceção* @throws jsonexception*/public static void tojavabean (objeto javabean, string jSonstring) lança parsexception, jsonexception {jsonObjectject, jSonsonstring) JSOWSEXCECTION, tomap (jsonObject.toString ()); Tojavabean (Javabean, mapa);}} 4. Exemplo de demonstração
Aqui estão alguns métodos comuns básicos para testar
pacote com.json; importar java.text.parseException; importar java.util.ArrayList; importar java.util.hashmap; importar java.util.list; import java.json.map; import org.json.jsonArray; importjson.jSonexception; importação; importar; JSON DATA** @Author Alexia* @Date 2013/5/33**/public class OrgjSontest {/*** Construa dados json** @return* @throws jsonexception*/public static string Builtjson () lança jsonexception {// json format data parsing objeto jsonObject Jo = Mapa <string, string> map1 = new hashmap <string, string> (); map1.put ("name", "Alexia"); map1.put ("sexo", "feminino"); map1.put ("idade", "23"); mapa <string, string> map2 = new hashmap <string, string> (); map2. "Nome" "", "string> map2 = new Hashmap <, string> ();" sexo "" "" "", "string> map2 = new Hashmap <, string> ();"; "masculino"); map2.put ("idade", "24"); list <pap> list = new ArrayList <pap> (); list.add (map1); list.add (map2); funcionário = new funcionário (); funcionário. JsonArray (); Ja.put (map1); System.out.println ("JsonArray Object Data Format:"); System.out.println (Ja.toString ()); // convert javabean to json (requer mapa transit) jsonObject jo1 = jsonHelper.tojson para JSON (Funcionário) (requer o mapa) Objeto: "); System.out.println (jo1.toString ()); // Construa dados JSON, incluindo um mapa e um JSON Data contendo objeto de funcionário jo.put (" map ", JA); jo.put (" funcionário ", jo1.toString ()); System.out.println ("/n Final Constructed Data Format ()); "); System.out.println (jo.toString ()); retorna jo.toString ();}/*** parse dados json** @param jSonstring* json string de dados* @throws jsonexception* @throws parseException*/public static parsejson (string jsoScception) JsonObject (JSonstring); JsonArray Ja = Jo.getjsonArray ("map"); System.out.println ("/n analisa os dados json no map:"); System.Out.Println ("Nome:" + Ja.getjsonObject (0) .getString ("Nome") + "sexo: sexo:" Idade: " + Ja.getjsonObject (0) .getInt (" idade ")); string jSonstr = jo.getString (" funcionário "); funcionário emp = new funcionário (); jsonhelper.tojavabean (EMP, JSonstr); system.out.println ("/n nome em funcionário ". sexo: " + emp.getSex () +" idade: " + emp.getage ());}/*** @param args* @throws jsonexception* @throws parseException*/public static void main (string [] args) lança jsonexception, parsesexception {// (to-generado autocomemado) Os resultados da operação são os seguintes
5. Comparação com JSON-Lib
O uso de JSON-Lib e Org.json é quase o mesmo. Eu resumi duas diferenças:
1. Org.json é muito mais leve que o JSON-Lib. O primeiro não depende de outros pacotes JAR, enquanto o último depende de Lang, madeira, beanutils, coleções e outros componentes de Ezmorph e Commons.
2. O JSON-LIB é muito mais conveniente que o Org.json ao construir feijão e analisar feijões. O JSON-LIB pode converter diretamente com o feijão, enquanto o Org.json não pode converter diretamente com feijão e requer mapas como trânsito. Se você converter feijões em dados JSON, primeiro converter o feijão em mapas e depois converter os mapas em JSON, o que é mais problemático.
Em suma, a mesma frase ainda é a melhor coisa para você. Todos devem escolher qual método usar para analisá -lo conforme necessário. Por fim, apresentarei duas ferramentas para analisar os dados JSON: um é a ferramenta on -line JSON Edit (http://branancast.nl/samples/jsoneditor/); O outro é o Eclipse Plugin JSON Tree Analyzer, ambos muito úteis e recomendados para que todos usem!
O exposto acima é o conhecimento relevante dos dois métodos (explicação detalhada) usada pelo editor para apresentar a você sobre Java para construir e analisar dados JSON. Espero que seja útil para você!