2017-04-26 28 views
-1

你好,我有一個錯誤,我的代碼告訴我org.json.JSONException結尾輸入字符0時,我試圖恢復我的JSON在打印機上,通常發生這種錯誤,其返回一個空字符串,但我看不出有什麼不...android org.json.JSONException

這裏是我的代碼:

public class MaterielAssocie extends Activity { 
private ListView lv; 
public static etablissement etabSELECT; 
private ProgressDialog progressDialog; 
public static ArrayList<imprimante>detail = new ArrayList<>(); 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.materiel_associe); 
    lv = (ListView) findViewById(R.id.listViewMa); 
    chargerJeuDessaie(); 
    rafraichirListView(); 
} 

private void chargerJeuDessaie() 
{ 
    progressDialog = progressDialog.show(this,"Gestion des services associés","Telechargement en cours"); 
    MonAsyncTaskHttp monAsyncTaskHttp = new MonAsyncTaskHttp() { 

     @Override 
     protected void onPostExecute(Object o) { 
      super.onPostExecute(o); 
      MaterielAssocie.detail.clear(); 
      try { 
       JSONArray jsonArray = new JSONArray(o.toString()); 
       for (int i = 0; i < jsonArray.length(); i++) { 
        JSONObject jsonObject = jsonArray.getJSONObject(i); 
        imprimante imp = imprimante.factoryImp(jsonObject); 
        MaterielAssocie.detail.add(imp); 

        rafraichirListView(); 


       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      progressDialog.dismiss(); 
     } 
    }; 
    monAsyncTaskHttp.execute("requete=getLesImprimantes=" + search_ville.etabSELECT.getId()); 
} 

public void rafraichirListView() { 
    ArrayAdapter<imprimante> imprimanteadapter = new ArrayAdapter<imprimante>(MaterielAssocie.this, android.R.layout.simple_list_item_1, detail); 
    lv.setAdapter(imprimanteadapter); 
} 

這裏是我的我的頁式打印機的代碼:

public class imprimante extends Activity { 
    private int id_imprimante; 
    private String marque_imprimante; 
    private String emplacement; 
    private int ref_etab; 



public imprimante(int id_imprimante, String marque_imprimante, String emplacement, int ref_etab) { 
    this.id_imprimante = id_imprimante; 
    this.marque_imprimante = marque_imprimante; 
    this.emplacement = emplacement; 
    this.ref_etab = ref_etab; 
} 

public int getId_imprimante() { 
    return id_imprimante; 
} 

public void setId_imprimante(int id_imprimante) { 
    this.id_imprimante = id_imprimante; 
} 

public String getMarque_imprimante() { 
    return marque_imprimante; 
} 

public void setMarque_imprimante(String marque_imprimante) { 
    this.marque_imprimante = marque_imprimante; 
} 

public String getEmplacement() { 
    return emplacement; 
} 

public void setEmplacement(String emplacement) { 
    this.emplacement = emplacement; 
} 

public int getRef_etab() { 
    return ref_etab; 
} 

public void setRef_etab(int ref_etab) { 
    this.ref_etab = ref_etab; 
} 
public String toString() { 
    String lib = ""+ marque_imprimante +" "+ emplacement +""; 
    return lib; 
} 

public static imprimante factoryImp(JSONObject jo) 
{ 
    imprimante imp = null; 
    try { 
     int id_imprimante = jo.getInt("id_imprimante"); 
     String marque_imprimante = jo.getString("marque_imprimante"); 
     String emplacement = jo.getString("emplacement"); 
     int ref_etab = jo.getInt("ref_etab"); 




     imp = new imprimante(id_imprimante,marque_imprimante,emplacement,ref_etab); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

    return imp; 
} 
} 

如果有人看到錯誤我不會看不到謝謝

錯誤:

 W/System.err: org.json.JSONException: End of input at character 0 of 
04-26 14:51:33.025 24113-24113/ddec.applicationddec W/System.err:  at org.json.JSONTokener.syntaxError(JSONTokener.java:450) 
04-26 14:51:33.025 24113-24113/ddec.applicationddec W/System.err:  at org.json.JSONTokener.nextValue(JSONTokener.java:97) 
04-26 14:51:33.025 24113-24113/ddec.applicationddec W/System.err:  at org.json.JSONArray.<init>(JSONArray.java:87) 
04-26 14:51:33.025 24113-24113/ddec.applicationddec W/System.err:  at org.json.JSONArray.<init>(JSONArray.java:103) 
04-26 14:51:33.025 24113-24113/ddec.applicationddec W/System.err:  at ddec.applicationddec.MaterielAssocie$1.onPostExecute(MaterielAssocie.java:43) 
04-26 14:51:33.025 24113-24113/ddec.applicationddec W/System.err:  at 

android.os.AsyncTask.finish(AsyncTask.java:631) 
04-26 14:51:33.025 24113-24113/ddec.applicationddec W/System.err:  at android.os.AsyncTask.access$600(AsyncTask.java:177) 
04-26 14:51:33.025 24113-24113/ddec.applicationddec W/System.err:  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 
04-26 14:51:33.025 24113-24113/ddec.applicationddec W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:99) 

JSON字符串

{ 
"type": "object", 
"properties": { 
    "id_imprimante": { 
     "type": "int" 
    }, 
    "marque_imprimante": { 
     "type": "String" 
    }, 
    "emplacement": { 
     "type": "String" 
    }, 
    "ref_etab": { 
     "type": "int" 
    }, 
    } 
} 
+0

把這裏的JSON響應 –

+0

L'ERREUR德Json的? –

+0

刪除「ref_etab」:{ 「type」:「int」 }「,」來自最後一個JSONObject –

回答

1

,請把你的JSON字符串here,並檢查是否有效

+0

是的它是有效的 –

+0

請在這裏指出pojo http:// www.jsonschema2pojo.org/ –

+0

{ 「類型」: 「對象」, 「屬性」:{ 「id_imprimante」:{ 「類型」: 「INT」 }, 「marque_imprimante」:{ 「類型」 :「字符串」 }, 「emplacement」:{ 「type」:「String」 }, 「ref_etab」:{ 「type」:「int」 }, } } –

1

您提供的JSON字符串無效,最後還有一個額外的逗號。

"ref_etab": { "type": "int" },應該"ref_etab": { "type": "int" }

+0

即使如此「ref_etab」:{「type」:「int」}我總是有錯誤 –

1

有一個逗號德MAS,請檢查您的JSON格式 enter image description here

相關問題