2017-04-26 13 views
-1

안녕하세요, 나는 내 json 프린터를 복구하려고 할 때 문자 0에서 org.json.JSONException 끝 부분을 알려주는 코드에 오류가 있습니다. 일반적으로이 오류는 해당 반환이 발생합니다android org.json.JSONException

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; 
} 
} 

누군가가 오류를보고하면 내 페이지 프린터의 내 코드

여기
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); 
} 

입니다 : 빈 문자열하지만 난 여기에

내 코드는 ... 아니 무엇을 볼 수 없습니다 나는 아무 것도하지 않는다. t는 당신에게

오류 감사 참조 :

 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을 넣어 당신의 JSON의 형식을 확인? –

+0

제거 "ref_etab": { "유형": "INT" } 나는이 제거 도움이 될 것입니다 표시되지 않습니다 마지막으로 된 JSONObject –

답변

1

당신의 JSON 문자열 here를 넣어주십시오과

+0

예는 –

+0

POJO에게 여기에 http genarate하십시오 유효 : // www.jsonschema2pojo.org/ –

+0

{ "유형": "개체", "속성": { "id_imprimante": { "유형": "INT" }, "marque_imprimante": { "유형" : "문자열" }, "emplacement": { "유형": "문자열" }, "ref_etab": { "type": "int" }, } } –

1

제공 한 JSON 문자열이 유효 즉 유효 여부 확인 끝에 여분의 쉼표가 있습니다.

"ref_etab": { "type": "int" },해야 "ref_etab": { "type": "int" }

+0

심지어 "ref_etab": { "type": "int"} 항상 오류가 있습니다. –

1

이 쉼표 드 마스, enter image description here

관련 문제