2017-09-04 49 views
-1

所以我試圖使用這個json文件,但是當我嘗試用JSONobject解析它時,它給了我錯誤。我試圖找到類似的問題,但它似乎並沒有同樣的事情。JSONObject的問題一個JSONObject文本必須以'{'開頭

的代碼產生此錯誤味精

Exception in thread "main" org.json.JSONException: 
     A JSONObject text must begin with '{' at 1 [character 2 line 1] 

的Java:

public void readSubjects(String filename){ 
    obj =new JSONObject(filename.trim()); 
    objArr=obj.getJSONArray("subjects".trim()); 
    String tmpName; 
    String tmpRealName; 
    for(int i=0;i<objArr.length();i++){ 
     tmpName=objArr.getJSONObject(i).getString("subject_code"); 
     tmpRealName=objArr.getJSONObject(i).getString("name"); 
     System.out.println(tmpName + " " + tmpRealName); 
    } 
} 

JSON文件:

{ 
    "teachers": [ 
     { 
      "name": [ 
       "Peremann" 
      ], 
      "age": 22, 
      "subject": [ 
       "pgr200" 
      ], 
      "availability": true, 
      "contact_info": "" 
     }, 
     { 
      "name": "Jarand", 
      "age": 23, 
      "subject": "root" 
     } 
    ], 
    "subjects": [ 
     { 
      "subject_code": "pgr200", 
      "name": "Avansert Javaprogrammering", 
      "campus_priority": "Fjerdingen", 
      "educationForm": "", 
      "subjectProgram": "", 
      "duration": "X", 
      "amountOfHours": "", 
      "amountOfStudents": 12 
     } 
    ], 
    "studentGroups": [ 
     { 
      "students": [] 
     } 
    ], 
    "rooms": [ 
     { 
      "room_code": "F11", 
      "fasilitetsstoette": "test", 
      "max-capasity": 50, 
      "room-size": "X" 
     } 
    ]} 
+1

[第一站應始終是文檔。](https://developer.android.com/reference/org/json/JSONObject.html#pubctors)什麼是它說'JSONObject(String)'的構造函數?(另:「subj ECTS」 .trim()'?嗯?) –

+0

歡迎來到堆棧溢出。據我所知,JSONObject需要一個字符串文字,而不是一個文件名(所以它不會讀取文件,你必須單獨做) – Mikkel

回答

0

此行

obj =new JSONObject(filename.trim()); 

不正確。 constructorJSONObject需要實際的JSON字符串,而不是文件的名稱。

首先讀取文件的內容,然後將它傳遞給JSONObject的構造函數。

String content = new String(Files.readAllBytes(Paths.get("example.json"))); 
obj = new JSONObject(content); 
0

我檢查Samebug給你看,如果我們的任何用戶都產生了simular問題。他們回來了以下建議。

的JSON是無效的,或者您嘗試映射到不同的模型

替換單引號('),雙一(「)。你應該在JSON使用雙引號。

我還發現一個可能有用的Github評論。

相關問題