2019年10月29日18時53分13秒
ディアン概要
JSON-SIMPは、復号又は符号化機能JSONが提供される便利なプロセスのJSONのJavaであります
二ディアン機能
/ JSONの解析やテキスト変換を復号するための軽量ライブラリの使用
柔軟、インターフェースは地図やリストを再利用するために、シンプルで簡単です。
。JSONはテキスト出力のストリーミングをサポートしています。
高性能;
。他のライブラリに依存しない、
すべてのファイルとコードと互換性のあるJDK 1.2を実行します
JSON配列解読および符号化をサポート
水と使用
1. Javaプロジェクトを作成します。
プロジェクトでのインポートJSON-シンプルジャーパッケージ
選挙のビルド・パスを右エンジニアリング
次に、設定....
または直接Mavenを導入
<依存性>
<のgroupId> com.googlecode.json-簡単</のgroupId>
<たartifactId> JSON-簡単</たartifactId>
<バージョン> 1.1.1 </バージョン>
</依存>
2. JSONデータを解析
通常のJSONの解析
パッケージcom.lxl.learn.json。 輸入org.json.simple.JSONObject; 輸入org.json.simple.parser.JSONParser。 パブリック クラスJSON { 公共の 静的な 無効メイン(String []型引数)がスロー例外{ 文字列test_jsonを "{\" TEMP \ = ":\" 27.9度\ "\ "都市\":\ "北京\"、\"天気\ ":\"多云转阴\」、\ "WS \":\ "小于3级\"、\ "TEMP2の\":\ "31℃\"、\ "WD \":\ "南风\" 、\ "TEMP1の\":\ "18℃\"}」; JSONObject JSON =(JSONObject)新しいJSONParser()(test_json)を解析。 System.out。println( "城市:" + json.get( "都市" ).toString()); System.out.printlnは("温度:" + json.get( "TEMP" ).toString()); / * 出力 *市:北京 *温度:27.9度 * / } }
。JSON配列が解決します
パッケージcom.lxl.learn.json。 輸入org.json.simple.JSONArray; 輸入org.json.simple.JSONObject; 輸入org.json.simple.parser.JSONParser。 パブリック クラスJSON { 公共 静的 ボイドメイン(文字列[]引数)をスロー例外{ Stringデータ = "" + "[\ R \ n" + \ "北京\」、\ "一時\": "{\"都市\"を:\ "27.9 \"、\ "WD \":\ "南风\"、\ "WS \":\ "小于3级\"、\ "TEMP1の\": "18℃\"、\ "TEMP2 \ \ "\" 31℃\ "\ "天気\":\ "多云转阴\"}、\ R \ n" + " " " + "{\"都市\ ": \" フロリダ\ "\" TEMP \ " :\" 20.2 \ "\" WD \ ":\" 南の\ "\" WS \ " :\" レベル3未満"\ " \" TEMP1の\ 17℃:\" \ "\" TEMP2の\ ":\" 27℃\ "\"天気\ ":\" シャワー曇り\ "} \ R&LT \ N-" + " ] " ; // 解析JSONアレイ JSONArray dataArr =(JSONArray)新しい新しいJSONParser()構文解析(データ);. // 配列インデックス0を取得し、ここで得られたデータはJSONObject強い(ここをクリックして呼ばれる)に直接変換することができ JSONObjectファースト・データ=(JSONObject)dataArr.get(0 ); System.out.printlnは( "市:" + firstData.get( "市" ).toString( )); System.out.printlnは("温度:" + firstData.get( "TEMP" ).toString()); / * 出力 *市:北京 *温度:27.9 * / } }
マルチレベル解像度.json、(複数の段階に類似)
パッケージcom.lxl.learn.json。 輸入org.json.simple.JSONArray; 輸入org.json.simple.JSONObject; 輸入org.json.simple.parser.JSONParser。 パブリック クラスJSON { 公共 静的 ボイドメイン(文字列[]引数)をスロー例外{ 文字列データを "{\"データ\ = "[\ Rの\ N" + "{\"都市\ ":\"北京\」、\ "TEMP \":\ "27.9 \"、\ "WD \":\ "南风\"、\ "WS \":\ "小于3级\"、\ "TEMP1の\":\ "18℃\" 、\ "TEMP2の\" \ "31℃\"、\ "天気\":\ "多云转阴\"}、\ R \ n」+ "{\"都市\ ":\"; // 変換JSON JSONObject json_data =(JSONObject)新しい新しいJSONParser()解析(データ);. // 得られたデータ配列 JSONArray dataArr =(JSONArray)json_data.get( "データ" ); // 配列インデックス0得る JSONObjectを=ファースト・データ(JSONObject)dataArr.get(0 ); のSystem.out.println( "都市:" + firstData.get( "都市" ).toString()); のSystem.out.println( "温度" +ファースト・データ。 ( "TEMP"をGET ).toString()); / * 出力 *都市:北京 *温度:27.9 * / } }
前記エンコードされたデータ
通常のJSONの設定
パッケージcom.lxl.learn.json。 輸入org.json.simple.JSONObject; パブリック クラスJSON { 公共 静的 ボイドメイン(文字列[]引数)がスロー{例外 JSONObject JSON = 新しいJSONObjectを(); json.put( "都市"、 "北京" ); json.put( "TEMP"、 "27.9度" )。 System.out.println(json.toJSONString())。
/ *
*输出:{ "TEMP": "27.9度"、 "都市": "北京"}
*
* /
} }
。ビル配列JSON
パッケージcom.lxl.learn.json。 輸入org.json.simple.JSONArray; 輸入org.json.simple.JSONObject; パブリック クラスJSON { 公共 静的 ボイドメイン(文字列[]引数)がスロー例外{ JSONArray dataArr = 新しいJSONArray()。 // 第一项数据 JSONObject json1 = 新しいJSONObject(); json1.put( "都市"、 "北京" ); json1.put( "TEMP"、 "27.9度" )。 dataArr.add(json1)。 JSONObject json2 = 新しいですJSONObject(); json2.put( "市"、 "广州" ); json2.put( "TEMP"、 "19.5度" )。 dataArr.add(json2)。 System.out.println(dataArr.toJSONString())。 / * *输出 * [{ "TEMP": "27.9度"、 "都市": "北京"}、{ "TEMP": "19.5度"、 "都市": "广州"}] * / } }
マップ構造のJSONを使用
パッケージcom.lxl.learn.json。 輸入java.util.LinkedHashMap。 輸入java.util.Map; 輸入org.json.simple.JSONValue。 パブリック クラスJSON { 公共 静的 ボイドメイン(文字列[]引数)がスロー例外{ マップjson1 = 新規のLinkedHashMapを(); json1.put( "都市"、 "北京" ); json1.put( "TEMP"、 "27.9度" )。 json1.put( "TEMP1"、 "13度" )。 json1.put( "TEMP2"、 "30度" )。新しいJSONValue()toJSONString(json1)。 System.out.println(データ)。 / * *输出 * { "都市": "北京"、 "TEMP": "27.9度"、 "TEMP1": "13"、 "TEMP2": "30度"} * / } }
一覧JSON配列構造を使用します
パッケージcom.lxl.learn.json。 輸入java.util.LinkedList; 輸入はjava.util.List; 輸入org.json.simple.JSONObject; 輸入org.json.simple.JSONValue。 パブリック クラスJSON { 公共 静的 ボイドメイン(文字列[]引数)がスロー例外{ // 这里使用マップ构造普通JSON也一样 JSONObject OBJ1 = 新しいJSONObject()。 obj1.put( "都市"、 "北京" ); obj1.put( "TEMP"、 "29.7" ); JSONObject obj2が = 新しいJSONObject(); obj2.put("都市"、 "广州" ); obj2.put( "TEMP"、 "19" )。 リスト李 = 新しいLinkedListの(); li.add(obj1.toJSONString())。 li.add(obj2.toJSONString())。 文字列のJSON = 新しいJSONValue()toJSONString(LI)。 System.out.println(JSON)。 / * *输出 * [ "{\" TEMP \ ":\" 29.7 \ "\ "都市\":\ "北京\"}"、 "{\" TEMP \ "\" 19 \ "\"都市\ ":\"广州\ "}"] * / } }
四ディアンその他
単純にJSONを使用し、配列やJSON形式のJSONをマージもあります。putAllメソッドは、個別に呼び出すことができます