2015-07-29 3 views
-1
public class Restcaliing extends AsyncTask<String, String, String> { 

    JsonParser jsonParser = new JsonParser(); 

    @Override 
    protected String doInBackground(String... arg0) { 
     try { 
      // (http Calling) 

      ServiceHandler serviceHandler = new ServiceHandler(); 

      reststring = serviceHandler.makeServiceCall(prepaerdurl, ServiceHandler.GET); 

      jsonParser.parse(restString); 

      Log.d("Response String", "" + jsonParser.parse(restString)); 


     } catch (Exception e) { 
      e.printStackTrace(); 
      Log.d("catach", "Exception"); 
     } 
     return null; 
    } 
} 

В doInBackground() метод отправки запроса на сервер и получить ответ в строке, но когда я преобразовать эту строку в JSONObject возвращает это исключение:Issuse с pasrsing ответ JSON в строки

Строка не может быть брошен в JSONObject

Это строка, я получил в reststring переменной:

"{\n \"assigmentlist\" : [ {\n \"attributes\" : {\n \"type\" : \"Assigment__c\",\n \"url\" : \"/services/data/v34.0/sobjects/Assigment__c/a0128000005CZIsAAO\"\n },\n \"Id\" : \"a0128000005CZIsAAO\",\n \"Class__c\" : \"1st\",\n \"Credit__c\" : \"1\",\n \"Division__c\" : \"A\",\n \"Subject__c\" : \"Maths\",\n \"Submission_Date__c\" : \"7/25/2015 7:08:00 AM GMT\"\n } ]\n}" 
+0

поделиться своим примером json format – Ketan

+0

Укажите строку ответа с сервера – galath

ответ

1

Строка JSON может содержать нежелательные символы типа «\ n» или могут быть некоторые символы в начале и в конце, которые могут создавать ошибки при разборе

попробовать с помощью Викисклада lang3: 3,4 библиотека (BY апача) используется program..and «StringEscapeUtils.unescapeJava (<>)», чтобы удалить charcters

, а затем ваша строка будет хорошо для операция выборки данных

0

Вы Json строка после форматирования:

{ 
"assigmentlist":[ 
{ 
"attributes":{ 
"type":"Assigment__c", 
"url":"/services/data/v34.0/sobjects/Assigment__c/a0128000005CZIsAAO" 
}, 
"Id":"a0128000005CZIsAAO", 
"Class__c":"1st", 
"Credit__c":"1", 
"Division__c":"A", 
"Subject__c":"Maths", 
"Submission_Date__c":"7/25/2015 7:08:00 AM GMT" 
} 
] 
} 

JSONObject jsonObject=new JSONObject(restString); 
JSONArray jsonarray = jsonObject.getJSONArray("assigmentlist"); 

JSONObject jsonObject1 = jsonarray.getJSONObject("attributes"); 
String type = jsonObject1.getString("type"); 

и так далее ... для остального ....

+0

Что такое процедура для удаления символа (\ или \ n), я попробовал это, но он дал мне исключение в первой строке ... так что мне делать .. JSONObject jsonObject = new JSONObject (restString); JSONArray jsonarray = jsonObject.getJSONArray ("assigmentlist"); JSONObject jsonObject1 = jsonarray.getJSONObject ("attributes"); Строковый тип = jsonObject1.getString ("type"); –

+0

используйте эту строку finalString = restString.replaceAll ("\ n", "\\\\ n"); – Ketan

+0

В соответствии с комментарием Beck очистите ответ перед разбором с помощью метода replaceAll(), затем используйте код, показанный выше для разбора, или попробуйте очистить ответ от используемого вами API. – Ketan

0

Почему существует так много \ п в этой строке? Я думаю, вам нужно разобраться с ними, прежде чем разбирать строку.

+0

Фактически я использовал saleforce для хранения данных для этого, я использовал saleforce rest api .. и получил от этого ответ. –

0

Чтобы удалить символ, подобный (\ n) или ненужный символ в строке json, используется commons-lang3: 3.4 библиотека в программе. Я использовал этот класс для удаления нежелательного символа в строке json «StringEscapeUtils.unescapeJava (string)»

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