2016-05-06 8 views
0

Ich posten JSON Array zu einem Webdienst, aber ich kann es nicht lösen. Im folgenden Code "str" ​​wird das JSONArray in String konvertiert. JSONArray besteht aus JSONObjects und jedes JSONObject besteht aus 3 Parametern (ID, Frage, Antwort).Post JSON Array zu einem Webservice in Android

 ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
     nameValuePairs.add(new BasicNameValuePair("feedbackjson", str)); 
     try 
     { 
      HttpClient httpclient = new DefaultHttpClient(); 
      HttpPost httppost = new HttpPost("http://172.16.10.64:8080/plugleadservices/rest/feedbackmanagement/feedbacknew"); 
      httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
      HttpParams httpParameters = new BasicHttpParams(); 
      DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters); 
      HttpResponse response = httpclient.execute(httppost); 
      HttpEntity entity = response.getEntity(); 
      //is = entity.getContent(); 

      result = EntityUtils.toString(entity).toString(); 


     } catch (Exception e) 
     { 
      Log.e("Loading Runnable Error in http connection :", e.toString()); 
     } 


     try 
     { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8); 
      StringBuilder sb = new StringBuilder(); 
      String line = null; 
      while ((line = reader.readLine()) != null) 
      { 
       sb.append(line + "\n"); 
      } 
      is.close(); 
      result = sb.toString(); 
     } 
     catch (Exception e) 
     { 
      Log.e("Loading Runnable Error converting result :", e.toString()); 
     } 


     JSONObject json_data = new JSONObject(result); 
     System.out.println("#### Status Message : " +json_data.getString("statusMessage").toString()); 
     System.out.println("#### Company ID : " +json_data.getInt("company_id")); 

das ist der Fehler, was ich

05-06 14:50:48.459: W/System.err(8368): org.json.JSONException: End of input at character 0 of 
05-06 14:50:48.459: W/System.err(8368):  at org.json.JSONTokener.syntaxError(JSONTokener.java:450) 
05-06 14:50:48.459: W/System.err(8368):  at org.json.JSONTokener.nextValue(JSONTokener.java:97) 
05-06 14:50:48.459: W/System.err(8368):  at org.json.JSONObject.<init>(JSONObject.java:156) 
05-06 14:50:48.459: W/System.err(8368):  at org.json.JSONObject.<init>(JSONObject.java:173) 
05-06 14:50:48.459: W/System.err(8368):  at com.plugleads.feedback.FeedBackQuestionsActivity.callWebservice(FeedBackQuestionsActivity.java:712) 
05-06 14:50:48.459: W/System.err(8368):  at com.plugleads.feedback.FeedBackQuestionsActivity.checkBoxes(FeedBackQuestionsActivity.java:371) 
05-06 14:50:48.459: W/System.err(8368):  at com.plugleads.feedback.FeedBackQuestionsActivity.isValidData(FeedBackQuestionsActivity.java:350) 
05-06 14:50:48.459: W/System.err(8368):  at com.plugleads.feedback.FeedBackQuestionsActivity$1.onClick(FeedBackQuestionsActivity.java:166) 
05-06 14:50:48.459: W/System.err(8368):  at android.view.View.performClick(View.java:4785) 
05-06 14:50:48.459: W/System.err(8368):  at android.view.View$PerformClick.run(View.java:19884) 
05-06 14:50:48.460: W/System.err(8368):  at android.os.Handler.handleCallback(Handler.java:739) 
05-06 14:50:48.460: W/System.err(8368):  at android.os.Handler.dispatchMessage(Handler.java:95) 
05-06 14:50:48.460: W/System.err(8368):  at android.os.Looper.loop(Looper.java:135) 
05-06 14:50:48.460: W/System.err(8368):  at android.app.ActivityThread.main(ActivityThread.java:5343) 
05-06 14:50:48.460: W/System.err(8368):  at java.lang.reflect.Method.invoke(Native Method) 
05-06 14:50:48.460: W/System.err(8368):  at java.lang.reflect.Method.invoke(Method.java:372) 
05-06 14:50:48.460: W/System.err(8368):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) 
05-06 14:50:48.460: W/System.err(8368):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) 

ich unten JSONArray übergeben möchten bin immer Webservice

[ 
       { 
        "fk_Company_id":4, 
        "q_Answer":"no", 
        "q_Name":"qwhgdfqw" 
      }, 
      { 
       "fk_Company_id":2, 
       "q_Answer":"yes", 
       "q_Name":"sdfsdf" 
       }, 
       { 
        "fk_Company_id":2, 
        "q_Answer":"yes", 
        "q_Name":"xcvfdgd" 
        }, 
        { 
         "fk_Company_id":2, 
         "q_Answer":"no", 
         "q_Name":"xfgdf" 
         }] 

Vielen Dank im Voraus.

+0

Was ist die Zeilennummer '712' in 'FeedBackQuestionsActivity'? –

+0

712 - JSONObject json_data = neues JSONObject (Ergebnis); Ergebnis ist null @ ρяσѕρєяK – Naveen

Antwort

0

versuchen diesen Code:

List<NameValuePair> params1 = new ArrayList<NameValuePair>(); 
     params1.add(new BasicNameValuePair("dev_id", ID)); 
     params1.add(new BasicNameValuePair("Question", question)); 
     params1.add(new BasicNameValuePair("Answer", ans)); 
     cd = new ConnectionDetector(context); 
     isInternetPresent = cd.isConnectingToInternet(); 
     if (isInternetPresent) { 
      @SuppressWarnings("unused") 
      JSONObject json = jsonParser.makeHttpRequest(url, "POST", 
        params1); 

     } 
+0

Wie diese Antwort hilft OP bei der Behebung des aktuellen Problems? –

0

org.json.JSONException: Ende der Eingabe an Charakter 0 von

zunächst keine Notwendigkeit \n char am Ende jeder Zeile anhängen beim Lesen JSON String. nur verwenden:

while ((line = reader.readLine()) != null) 
{ 
    sb.append(line); 
} 

Und zweiter wichtiger Fehler String als JSONObject wird das Parsen, enthält JSON-String JSONArray als Stammelement statt JSONObject, so konvertieren result-JSONArray .change:

JSONObject json_data = new JSONObject(result); 

zu

JSONArray json_data = new JSONArray(result); 
+0

Danke für die Antwort @ ρяσѕρєя K. Ich habe den gleichen Fehler nach dem Wechsel zu JSONArray. Eigentlich möchte ich hier JSONArray übergeben und JSONObject als Antwort vom Webservice bekommen. – Naveen

+0

@Naveen: Warum nicht 'HttpURLConnection' anstelle von 'HttpClient' verwenden, weil der Apache HTTP Client in der neuesten Version entfernt wurde –

+0

Ich habe auf diesen Link verwiesen http://stackoverflow.com/questions/13134019/http-post-method-passing- Null-Werte-zum-Server/13134287 # 13134287. Ich wurde hier von den letzten 2 Tagen geschlagen. – Naveen