2015-09-04 3 views
0

Я пытаюсь прочитать файл json из dbpedia и проанализировать его. Но код, который я написал, не может правильно прочитать весь json-файл, и по этой причине возникает ошибка синтаксического анализа. Вот мой код для чтения и разбора ...Файл не читается правильно

URL url=new URL("http://dbpedia.org/data3/assembly.json"); 

BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
String inputLine="asdf"; 
while ((in.readLine()) != null) 
{ 
    if (inputLine=="asdf") 
     inputLine=in.readLine(); 
    else 
     inputLine+=in.readLine(); 
    //System.out.println(inputLine); 
} 
System.out.println(inputLine); 
Object obj = parser.parse(inputLine);  

JSONObject jsonObject = (JSONObject) obj; 
+0

что сообщение об ошибке? – Paolo

+2

Использовать 'String.equals' для сравнения строк – Reimeus

+0

error msg is this this Ошибка: ошибка анализа в строке 1: .../онтология/сборка": {"http: //www.w3.o --- --------------------^ Ожидание «EOF», '}', ',', ']', got ':' В действительности я сравниваю с фактическим json и выход переменной «inputLine», и она не является полностью такой же. –

ответ

2

Вы можете создать вспомогательный метод для чтения файла из URL:

private static String readUrl(String urlString) throws Exception { 
     BufferedReader reader = null; 
     try { 
      URL url = new URL(urlString); 
      reader = new BufferedReader(new InputStreamReader(url.openStream())); 
      StringBuffer buffer = new StringBuffer(); 
      int read; 
      char[] chars = new char[1024]; 
      while ((read = reader.read(chars)) != -1) { 
       buffer.append(chars, 0, read); 
      } 
      return buffer.toString(); 
     } finally { 
      if (reader != null) 
       reader.close(); 
     } 
    } 

, то вы можете вызвать метод как это

try { 
    JSONObject json = new JSONObject(readUrl("http://dbpedia.org/data3/assembly.json")); 
    ... 

} catch (JSONException e) { 
    e.printStackTrace(); 
} 

Это зависит от вас, если вам нужен StringBuffer или StringBuilder

Смежные вопросы