First, Introduction
The Org.json package is another package used to Beans,collections,maps,java arrays and XML and JSON to each other, mainly to parse JSON data, on its official website http://www.json.org/ Have a detailed explanation, interested can go to study.
ii. Download the jar dependency package
can go here to download
Iii. Introduction to the basic methods
Since the Org.json cannot be converted directly to the bean and needs to be brokered through a map, I have written a tool class Jsonhelper here to convert JSON to map and bean.
PackageCom.json;ImportJava.lang.reflect.Method;ImportJava.text.ParseException;ImportJava.util.HashMap;ImportJava.util.Iterator;ImportJava.util.Map;ImportOrg.json.JSONException;ImportOrg.json.JSONObject;/*** * 1: Convert Javabean to map, Jsonobject * 2: Convert map to Javabean * 3: Convert Jsonobject to map, Javabean * *@authorAlexia*/PublicClassJsonhelper {/*** Convert JavaBean to map * *@paramJavaBean * JavaBean *@returnMap Object*/PublicStaticMap Tomap (Object javaBean) {Map result =NewHashMap (); Method[] Methods =Javabean.getclass (). Getdeclaredmethods ();For(Method method:methods) {Try{if (Method.getname (). StartsWith ("Get") {String field =Method.getname (); field = Field.substring (Field.indexof ("get") + 3); field = Field.tolowercase (). CharAt (0) + field.substring (1); Object value = Method.invoke (JavaBean, (object[])Null); Result.put (field,NULL = = value? "": Value.tostring ()); } }Catch(Exception e) {E.printstacktrace ();} }ReturnResult }/*** Convert JSON object to map * *@paramJsonobject * JSON Object *@returnMap Object *@throwsJsonexception*/PublicStatic Map Tomap (String jsonstring)Throwsjsonexception {Jsonobject Jsonobject =NewJsonobject (jsonstring); Map result =NewHashMap (); Iterator Iterator =Jsonobject.keys (); String key =Null; String value =Null;While(Iterator.hasnext ()) {key =(String) Iterator.next (); Value =Jsonobject.getstring (key); Result.put (key, value); }ReturnResult }/*** Convert JavaBean to Jsonobject (transfer via map) * *@paramBean * JavaBean *@returnJSON object*/PublicStaticJsonobject ToJSON (Object Bean) {ReturnNewJsonobject (Tomap (bean)); }/*** Convert Map to JavaBean * *@paramJavaBean * JavaBean *@paramData * Map*/PublicStaticObject Tojavabean (Object JavaBean, Map data) {method[] methods =Javabean.getclass (). Getdeclaredmethods ();For(Method method:methods) {Try{if (Method.getname (). StartsWith ("Set") {String field =Method.getname (); field = Field.substring (Field.indexof ("set") + 3); field = Field.tolowercase (). CharAt (0) + field.substring (1); Method.invoke (JavaBean,NewObject[] {data.get (field)}); } }Catch(Exception e) { } }ReturnJavaBean }/*** Jsonobject to JavaBean * * @param Bean * JavaBean * JSON object * @throws ParseException * JSON parsing exception * @throws jsonexception */public static void Tojavabean (Object JavaBean, String jsonstring) throws ParseException, jsonexception {jsonobject Jsonobject = new Jsonobject (jsonstring); Map map = Tomap (jsonobject.tostring ()); Tojavabean (JavaBean, map);}}
Iv. Demonstration Examples
Here are some basic common methods for testing
PackageCom.json;ImportJava.text.ParseException;ImportJava.util.ArrayList;ImportJava.util.HashMap;ImportJava.util.List;ImportJava.util.Map;ImportOrg.json.JSONArray;ImportOrg.json.JSONException;ImportOrg.json.JSONObject;/*** Construct and parse JSON data using Json-lib * *@authorAlexia * @date 2013/5/23 **/PublicClassorgjsontest {/*** Construct JSON Data * *@return*@throwsJsonexception*/PublicStatic String Buildjson ()Throwsjsonexception {//JSON-formatted data parsing object Jsonobject Jo =NewJsonobject ();//The following constructs two maps, a list, and an Employee object map<string, string> map1 =New Hashmap<string, string>(); Map1.put ("name", "Alexia"); Map1.put ("Sex", "female"); Map1.put ("Age", "23"); map<string, string> map2 =New Hashmap<string, string>(); Map2.put ("name", "Edward"); Map2.put ("Sex", "male"); Map2.put ("Age", "24"); list<map> list =New arraylist<map>(); List.add (MAP1); List.add (MAP2); Employee Employee =NewEmployee (); Employee.setname ("Wjl"); Employee.setsex ("female"); Employee.setage (24);//Convert map to jsonarray data jsonarray ja =NewJsonarray (); Ja.put (MAP1); System.out.println ("Jsonarray Object Data format:"); System.out.println (Ja.tostring ());//Convert JavaBean to JSON data (requires map relay) Jsonobject JO1 =Jsonhelper.tojson (employee); System.out.println ("\ n only the JSON data format for employee objects:"); System.out.println (Jo1.tostring ());//Constructs JSON data, including a map and a JSON data jo.put with an Employee object ("Map", JA); Jo.put ("Employee", jo1.tostring ()); System.out.println ("\ n final constructed JSON data format:"); System.out.println (Jo.tostring ());ReturnJo.tostring (); }/*** Parse JSON data * *@paramjsonstring * JSON Data String *@throwsJsonexception *@throwsParseException*/PublicStaticvoid Parsejson (String jsonstring)ThrowsJsonexception, parseexception {jsonobject Jo =NewJsonobject (jsonstring); Jsonarray ja = jo.getjsonarray ("Map"); System.out.println ("\ n parse JSON data into map:"); System.out.println ("Name:" + ja.getjsonobject (0). getString ("name"+ "Sex:" + ja.getjsonobject (0). getString ("sex") + "Age:" + ja.getjsonobject (0). GetInt (' age ')); String jsonstr = jo.getstring ("Employee"); Employee emp =NewEmployee (); Jsonhelper.tojavabean (EMP, JSONSTR); System.out.println ("\ nthe JSON data resolves to the Employee object:"); System.out.println ("Name:" + emp.getname () + "Sex:" + Emp.getsex () +" Age: "+ Emp.getage ());} /** @param args * @throws Jsonexception * @throws parseexception */ public static void Main (string[] args) throws Jsonexception, parseexception {// TODO auto-generated method Stub Parsejson (Buildjson ()); }}
The operation results are as follows
v. Comparison with Json-lib
The use of Json-lib and Org.json is almost the same, and I have summed up the difference with two points:
1. Org.json is much lighter than Json-lib, the former does not depend on any other jar packages, while the latter relies on ezmorph and Commons's lang, logging, Beanutils, collections, and other components
2. Json-lib is much more convenient for constructing beans and parsing beans than Org.json,Json-lib can directly transform with beans, and Org.json can not directly with the bean to convert to and need map as a transit, if the bean into JSON data, first need to convert the bean to map and then the map to JSON, more trouble.
Ext.: http://www.cnblogs.com/lanxuezaipiao/archive/2013/05/24/3096437.html
Two ways to construct and parse JSON data in Java