背景
常に前に、データベースへの情報の保存クロール、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(タグ); } } }