2016-03-11 4 views
-1

Я использую следующий код для удаления данных JSON с Url. Но моя ошибка: значение {"InvoiceNo": 18} типа java.lang.String не может быть преобразовано в JSONObject.My Json Like: "{\" InvoiceNo \ ": 18}« Пожалуйста, помогите мне.Как преобразовать строку в объект JSON?

private class LongOperation extends AsyncTask{ 
    @Override 
    protected Object doInBackground(Object[] params) { 
     HttpResponse response = null; 
     try { 
      HttpClient client = new DefaultHttpClient(); 
      HttpGet request = new HttpGet(); 
      request.setURI(new URI(
        "http://192.168.1.2/Json/api/test")); 
      response = client.execute(request); 
     } catch (URISyntaxException e) { 
      e.printStackTrace(); 
     } catch (ClientProtocolException e) { 

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

      e.printStackTrace(); 
     } 

     String responseText = null; 
     try { 
      responseText = EntityUtils.toString(response.getEntity()); 


     } catch (IOException e) { 

      e.printStackTrace(); 


     } 
     try { 
      JSONObject json = new JSONObject(responseText); // **Error on this line** 
      Iterator<String> keys = json.keys(); 

      while (keys.hasNext()) { 
       String key = keys.next(); 
       String value = null; 
       try { 
        value = json.getString(key); 
        Toast.makeText(Billing.this, value + "", 
          Toast.LENGTH_SHORT).show(); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
       textInvoice.setText(value.toString()); 
      } 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     Log.i("responseText", responseText); 

     return null; 
    } 
} 
+2

Недействительный JSON тогда? –

+0

Я уже проверял, что это действительно json и hardcode. Эта строка json отлично работает @ScaryWombat –

+0

распечатывает значение 'responseText' перед' new JSONObject (responseText); ' –

ответ

1

Ваша строка не должна содержать символ "\". Если это так, это является причиной вашей проблемы.

+0

Я знаю, что должен публиковать комментарии, а не ответ. Но у меня нет достаточной репутации для этого: (Извините за это. –

+0

Рецензенты, пожалуйста, проверьте http://meta.stackexchange.com/questions/185073/how-do-i-properly-use-the-not-an -answer-flag/185074 # 185074, прежде чем принимать решение –

+0

@WeizhouHe: Пожалуйста, не злоупотребляйте ответами для других целей, если у вас пока нет достаточной репутации. В любом случае, если вы считаете, что нашли проблему, пожалуйста, не делайте этого. пусть ваш ответ звучит как вопрос о разъяснении. Пожалуйста, сделайте это так же, как Tunaki, который отредактировал ваш ответ. – honk

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