Javaは、ローカルのJSONファイルを読み込みます

背景

常に前に、データベースへの情報の保存クロール、Javaの爬虫類を取得します。しかし、これはテーブル等にデータベースを作成するには、コース設計、フロントエンドGUIのデザイン、表示データは、select文を介してデータベースから直接検索の始まりですが、私は先生に心配です、先生べきJDBCの設定パラメータであり、いくつかの複雑な操作は、ローカルに保存したいです。昨夜は、学生にJSONファイルからデータベースからエクスポートされたJSONファイル、読み取った情報を見てきちんとここで、少しを学ぶので、これは良い方法だと思います読んで。

開発環境

1 JDK1.8

2のIntelliJ IDEA

3 IDEAは、Mavenを来ります

JSONファイル

{
  「RECORDS」:[ 
    {
      「MOVIEID」:「1」「名前」:「でショーシャンクの空にショーシャンクの空に」「フランク・ダラボン」:「監督」「シナリオライター」:「フランク・デBonthe /スティーヴン・キング「」俳優「:」ティム・ロビンス/モーガン・フリーマン/ボブ・岡崎デイトン/ウィリアム・サドラー/クランシー・ブラウン/ギル・ベローズ/マーク・ロルストン/ジェームズ・ホイTemo /ジェフリー・フリードマン/ラリー・一般ブランデンブルク/ニール・ジャン・トレド/ブライアン・リビー/デヴィッド・ワール/ジョセフRagno /ジュードSeckリラ/ポール・マイクRanney /レニーブライアン/アルフォンソ・フリーマン/ V・J・フォスター/フランク・メドラノ/マーク・マイヤーアダムス/ニール・サマーズ/シュナイダー・Bahrami /ブライアン・大後期/ドン・マクマナス「「:」タイプの」犯罪ドラマ「」ratingNum「:」9.7「」タグ「:」人間の自由の古典的なインスピレーションの人生の物語アメリカの信仰「 
    }、
    {」MOVIEID「:」2 " 
      「名前」:「覇王別姫」「ディレクター」:「陳凱歌(チェン・カイコー)」「シナリオライター」:「リード/書評」「俳優」:「レスリー/張豊毅/コン・リー/ Geの/インダ/ジャン・ウェンリ/デビッド・ウー/呂チー/レイ・ハン/ユン・ガバナンス/ Mingwei馬/料金チャン/トンチー/リチウム/ Hailong /ダン/子の弟/陳Huifen /黄飛「種類の」「:」同性愛のラブストーリー「」ratingNum「:」9.6 " 「タグ」:「文化大革命時の人間の生活の古典的な物語、同志ロマンス」
    }、
    {「MOVIEID」:「3」「名」:「フォレストへのフォレストガンプ」「ディレクター」:「ロバート・ゼメキス "シナリオライター":「エリック・ロス/ウィンストン・グルーム」 
      「俳優」:「トム・ハンクス/ロビン・ライト/ゲイリー・シニーズ/マッケイヴォルテールウィリアムソン/サリー・フィールド/ハーレイ・ジョエル・オスメント/マイケル・コナー・ハンフリーズリース/ハロルド・G・彼SEMU /サム・アンダーソン/ジオン・M・テLeiqi /ピーター・ロードベルソン/ Xiの牙ファロン/エリザベス・ハンクス/ハンナ・ホール/クリストファージョーンズ/ロブ・ランドリー/ジェイソン・マグワイア/ソニー市Luoye /エド・デイヴィス/ダニエル・C.パーカーストリップ/デイビット・ブリスビン/デボラMaikeディER /アル・ハリントン/非Moのオメーラ/ジョン・ウォードアマーレ/マイケル・バージェス/エリック・アンダーウッド/バイロン・カミングス/スティーブン・プーケットGWO特別/ジョン・ウィリアム・ゴールト/ヒラリーShapu LAN /イザベル・ロス/リチャード・DAlessandro /ディック・スティルウェル/マイケル-ジェス/ジェフリー・ブラック/ヴァネッサロス/ディック・カベット/マラSuchanekレイテZHA /ジョー・アッラーブラスキ/ W・ベンソンテリー「種類の」「:」愛の物語「」ratingNum「:」9.5「」タグ「:」インスピレーション古典的なアメリカの生活に成長信念ドラマ ヒト" 
    } 
  ] 
}

 

 

これは、リソースファイルにJSONファイルであることに注意してください

ポンポン依存

 < 依存> 
        < groupIdを> com.alibaba </ groupIdを> 
        < たartifactId > fastjson </ たartifactId > 
        < バージョン> 1.2.47 </ バージョン> 
 </ 依存関係>

読むJSONツール

輸入com.alibaba.fastjson.JSON;
輸入com.alibaba.fastjson.JSONArray;
輸入com.alibaba.fastjson.JSONObject; 


輸入 java.io. * ; 


パブリック クラスJsonTest { 

    // 读取JSON文件
    パブリック 静的文字列readJsonFile(文字列fileNameに){ 
        文字列jsonStr = "" ;
        試す{ 
            jsonFileは、ファイル = 新しいファイル(ファイル名); 
            FileReaderのFileReaderを = 新しいFileReaderの(jsonFile)。
            リーダーのリーダー = 新しい InputStreamReaderの(新しい FileInputStreamを(jsonFile)、 "UTF-8" );
            INT CH = 0 ; 
            StringBufferのSB = 新しいStringBufferを();
            一方、(!(CH = reader.read())= -1 ){ 
                sb.append((CHAR )CH); 
            } 
            fileReader.close()。
            )(reader.close。
            jsonStr = sb.toString()。
            返すjsonStrを。
        } キャッチ(IOExceptionを電子){ 
            e.printStackTrace(); 
            リターン ヌル
        }
    } 


    パブリック 静的 ボイドメイン(文字列[]引数){ 
        文字列のパス = JsonTest。クラス .getClassLoader()のgetResource( "Movie.json"。).getPath(); 
        文字列s = readJsonFile(パス)。
        JSONObject jobj = JSON.parseObject(S)。
        JSONArray映画 = jobj.getJSONArray( "RECORDS"); // 构建JSONArray数组
        ためINT I = 0、I <movies.size(); I ++ ){ 
            JSONObjectキー = (JSONObject)movies.get(I)。
            文字列名 =(String)をkey.get( "名前" );
            文字列のディレクター
            System.out。=(String)をkey.get( "ディレクター" ); 
            文字列のScenarist =((文字列)key.get( "シナリオライター" ))。
            文字列アクター =((文字列)key.get( "俳優" ))。
            文字列型 =((文字列)key.get( "タイプ" ))。
            ストリングratingNum =((文字列)key.get( "ratingNum" )); 
            文字列のタグ =((String)をkey.get( "タグ" )); 
            System.out.println(名); 
            System.out.println(ディレクター)。
            System.out.println(シナリオライター)。
            System.out.println(俳優)
            System.out.println(ディレクター)。
            System.out。
            System.out.println(タグ); 
        } 
    } 
}

 

 

おすすめ

転載: www.cnblogs.com/wkfvawl/p/11876107.html