JSON(JavaScriptオブジェクト表記)は、完全に言語に依存しないテキスト形式を使用する軽量のデータ交換形式であり、理想的なデータ交換形式です。一方、JSONはJavaScriptネイティブ形式です。つまり、JAVAScriptでJSONデータを処理するために特別なAPIまたはツールキットは必要ありません。
Javaの下での多くのJSON構造および解析ツールは、www.json.orgで公開されています。その中で、org.jsonとJson-libは比較的簡単です。 2つは使用が似ていますが、まだいくつかの違いがあります。次に、org.jsonを使用してJSONデータを構築および解析する方法の例を紹介します。
JSON-LIBを使用してJSONデータを構築および解析する方法の詳細な説明については、以前のブログ投稿を参照してください。Javaを使用してJSONデータを構築および解析する2つの方法(詳細な説明1)を参照してください。
1。はじめに
org.jsonパッケージは、豆、コレクション、マップ、Javaアレイ、XMLとJSONを変換するために使用される別のパッケージです。主にJSONデータを解析するために使用されます。公式ウェブサイトhttp://www.json.org/に詳細な説明があります。興味があれば勉強することができます。
2。JAR依存関係パッケージをダウンロードします
ここからダウンロードできます
3。基本的な方法の紹介
org.jsonは豆に直接変換することはできないため、マップを介して変換する必要があります。便利なため、ここにツールクラスのJsonhelperを作成しました。これは、JSONを地図と豆で変換するために使用されます。
パッケージcom.json; import java.lang.reft.method; import java.text.parseexception; java.util.hashmap; Import java.util.itilator; Import java.util.map; import org.json.jsonexcection; inmolg.json.json.jsonobject;マップをJavabeanに変換* 3:jsonobjectをマップに変換し、javabean** @author alexia*/public class jsonhelper {/*** javabeanをマップに変換*** @returnマップオブジェクト*/public static map tomap(object javabean){map result = new hashmap []; javabean.getClass()。getDeclaredMethods(); for(method method:methods){try {if(method.getName()。string field = method.getName(); field = field.substring(field.indexof( "get") + 3); field = field.tolowercase(0) + 3); field.substring(1); object value = method.invoke(javabean、(object [])null); result.put(field、null == value? "":value.tostring();}} catch(ecputed e){e.printstacktrace();}} return result;} @throws jsonexception*/public static Map tomap(string jsonstring)throws jsonexception {jsonobject jsonobject = new jsonobject(jsonstring); map result = new hashmap(); iterator iterator = jsonobject.keys(); string key = null; string null; iterator.next(); value = jsonobject.getString(key); result.put(key、value);} return result;}/*** javabeanをjsonobjectに変換する(マップ経由で転送) javabeanにマップ** @param javabean* javabean* @param data*マップデータ*/public staticオブジェクトtojavabean(Object javabean、Map Data){methods = Javabean.getClass()。 Method.getName(); field = field.substring(field.indexof( "set") + 3); field = field.tolowercase() javabean** @param bean* javabean* @return json object* @throws parseexception* json parsing exception* @throws jsonexception*/public static void tojavabean(Object javabean、String jsonstring)Throws parseexception、jsonexception {jsonobject = jsonobject = new jsonobject(jsonobject(jsonobject(jsonobject); tomap(jsonobject.toString()); tojavabean(javabean、map);}} 4。デモの例
テストするいくつかの基本的な一般的な方法を以下に示します
パッケージ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; import org.json.jsonesception; inctuntioncections; json data** @author alexia* @date 2013/5/23**/public class orgjsontest {/*** construction json data** @return* @throws jsonexception*/public static string buildjson()throws jsonexception {// json形式の形式データjsonobject jso = new construct jsonobject dyn/ string> map1 = new hashmap <string、string>(); map1.put( "name"、 "alexia"); map1.put( "sex"、 "female"); map1.put( "age"、 "23"); "MALE"); map2.put( "age"、 "24"); list <map> list = new arraylist <map>(); list.add(map1); list.add(map2); employee employee = new Employee(); employee.setname( "wjl"); employe.setsex( "fame"); employe jsonarray(); ja.put(map1); system.out.println( "jsonarray object data format:"); system.out.println(ja.tostring()); // javabean dataに変換(MAPトランジットが必要) Object: "); System.out.println(jo1.tostring()); // MAPおよびEmployee Object Jo.put(" Map "、Ja); Jo.put(" Employee "、Jo1.tostring()); System.out.Println("/n最終構築されたJSONデータフォーマット: "); system.out.println(jo.tostring()); return jo.tostring();}/*** parse json data** @param jsonstring* json data string* @throws parseexception*/public static void parsejson(string jsonction) jsonobject(jsonstring); jsonarray ja = jo.getjsonarray( "map"); system.out.println( "/n parses json datas in json data in json data in"); system.out.println( "name:" + ja.getjsonobject(0).getString( "name") + "年齢: " + ja.getjsonobject(0).getint(" age ")); string jsonstr = jo.getString(" Employee "); employee emp = new Employee(); jsonhelper.tojavabean(); jsonhelper.tojavabean(emp、jsonstr); system.out.println("/n n phese json data into employs: "); + emp.getsex() + "age:" + emp.getage();}/*** @param args* @throws jsonexception* @throws parseexception*/public static void main(string [] args)throws jsonexception、parseexception {// todo auto-feenated method stubparsed();操作結果は次のとおりです
5。JSON-LIBとの比較
JSON-Libとorg.jsonの使用はほぼ同じです。私は2つの違いを要約しました:
1。org.jsonはJson-libよりもはるかに軽いです。前者は他のJARパッケージに依存していませんが、後者はエズモルフとコモンズのラング、伐採、ビーンティル、コレクション、その他のコンポーネントに依存しています。
2。JSON-LIBは、豆を建設して豆を解析するときに、org.jsonよりもはるかに便利です。 Json-Libは豆で直接変換できますが、org.jsonは豆で直接変換することはできず、輸送としてマップを必要とします。豆をJSONデータに変換する場合、最初に豆をマップに変換し、次にマップをJSONに変換する必要があります。これはより面倒です。
要するに、同じ文がまだあなたにとって最高のものです。必要に応じて分析するために使用する方法を選択する必要があります。最後に、JSONデータを分析するための2つのツールを紹介します。1つはJSON編集(http://braincast.nl/samples/jsoneditor/);もう1つはEclipseプラグインJSONツリーアナライザーです。どちらも非常に便利であり、誰もが使用することをお勧めします!
上記は、JSONデータを構築および解析するためにJavaについて紹介するために編集者が使用する2つの方法(詳細な説明)の関連する知識です。それがあなたに役立つことを願っています!