JAVAの解析JSON -------- JSON-シンプル

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メソッドは、個別に呼び出すことができます

おすすめ

転載: www.cnblogs.com/lxlw/p/11761042.html