2016-10-11 6 views
1

ファイルからJSONファイルの入力をJavaプログラムに読み込む必要があります。 使用するのに合理的なコードをいくつか見つけましたが、これは以下の例です。 しかし、Eclipseを使用していて、JSONObjectを参照しようとするとエラーが発生します。 だから明らかに私はeclipseでintalledライブラリを持っていません。だから私はこれを動作させる最も簡単な方法は何か不思議だった。大きなライブラリーがインストールされている必要がありますか、それとも別の方法がありますか?もし私が最良の/最も簡単なライブラリをインストールする必要があり、あなたはダウンロードのためのリンクを指すことができます。Eclipseを使用してJSONファイルを読み込むにはライブラリが必要かどうか

ありがとうございます! GET文字列のあなたのjsondata後

 String jsonData = ""; 
    BufferedReader br = null; 
    try { 
     String line; 
     br = new BufferedReader(new FileReader(pathname)); 
     while ((line = br.readLine()) != null) { 
      jsonData += line + "\n"; 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     try { 
      if (br != null) 
       br.close(); 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 
    // System.out.println("File Content: \n" + jsonData); 
    JSONObject obj = new JSONObject(jsonData); 
+0

ライブラリが必要です。私はあなたがjsson.org Javaを使っていると仮定しています。 https://github.com/stleary/JSON-java –

+0

'JSONObject'は標準のJavaライブラリの一部ではないので、別のライブラリが必要です。 –

答えて

1

クラスJSONObjectはあなたにライブラリをインポートする必要があるので、実際にJDKの一部ではありませんあなたあなたのコードを実行できるようにするプロジェクトです。

あなたはMavenを使用している場合は、単にあなたのプロジェクトのPOMファイルに次の依存関係を追加するhereからそれを得ることができます。

<dependency> 
    <groupId>org.json</groupId> 
    <artifactId>json</artifactId> 
    <version>20160810</version> 
</dependency> 

最後に、あなたのコードがあることをJSONTokenerを使用することによって単純化することができることに注意してくださいInputStreamまたはあなたのケースでははるかに適切であるように思わReaderからJSONコンテンツを解析することができ、ので、あなたのコードは次のようになります。

JSONObject obj; 
try (InputStream input = new FileInputStream(pathname)) { 
    obj = new JSONObject(new JSONTokener(input)); 
} 
-1

、あなたはそれを解析する必要があります。例があります

public static List<String> GetCodes(String json) 
     { 
      try { 
       List<String> list = new ArrayList<>(); 
       JSONArray jsonArray = new JSONArray(json); 
       for(int i = 0, limit = jsonArray.length(); i < limit; i++) 
       { 
        JSONObject j = jsonArray.getJSONObject(i); 
        list.add(j.getString("Code")); 
       } 
       return list; 
      } 
      catch (JSONException e) 
      { 
       e.printStackTrace(); 
      } 
      return null; 
     } 
+0

OPはインポートするライブラリを尋ねています。解析コードはすでに彼の質問にあります。 – f1sh

+0

彼はJSONObjectを使うことができるので、jsonのライブラリなしでこのコードを使うことができます。 – Kayra

0

私はこれをお勧めすることができますE: JSONシンプル

https://code.google.com/archive/p/json-simple/

あなたが望むすべてがやるのであれば読み取りと書き込みされ、これは最軽量バージョンですが、私は思います。

関連する問題