2016-01-28 3 views
0

Я создал веб-службу wcf для отдыха и размещен в локальной iis, строка json преобразуется с JsonConvert.SerializeObject (объектом) пакета Newtonsoft.не может преобразовать строку Json в JSONObject или JSONArray

выход веб-сервиса

"[{\"companyId\":2,\"companyName\":\"A\"}, 
{\"companyId\":8,\"companyName\":\"B\"}]" 

это веб-сервис потребляют на Android программы и приложения, я попытался с JSONArray и JSONObject но продолжают бросать исключение

org.json.JSONException: Expected literal value at character 2 of 
[{\"companyId\":2,\"companyName\":\"A\"},{\"companyId\":8,\"companyName\":\"B\"}] 
org.json.JSONException: Expected literal value at character 2 of 
"[{\"companyId\":2,\"companyName\":\"A\"},  
{\"companyId\":8,\"companyName\":\"B\"}]" 
org.json.JSONException: Value [{"companyId":2,"companyName":"A"}, 
{"companyId":8,"companyName":"B"}] of type java.lang.String cannot be 
converted to JSONArray 

это код в андроидном классе

public JSONArray RequestWebService(URL urlToRequest) { 
urlConnection = (HttpURLConnection) urlToRequest.openConnection(); 
     urlConnection.setConnectTimeout(CONNECTION_TIMEOUT); 
     urlConnection.setReadTimeout(RETRIEVE_TIMEOUT); 
     urlConnection.setRequestMethod("GET"); 
     urlConnection.connect(); 

int statusCode = urlConnection.getResponseCode(); 

     if (statusCode == HttpURLConnection.HTTP_OK) { 
      InputStream in = new BufferedInputStream(
        urlConnection.getInputStream()); 
      String result = getResponseText(in); 
      //result = result.substring(1, result.length() - 1); 
      //result = result.replace("/\\/g", ""); 
      JSONArray j = new JSONArray(result); 
      return j 
     } 
    return null; 
} 

private String getResponseText(InputStream inStream) throws IOException { 
    StringBuilder sb = new StringBuilder(); 
    BufferedReader rd = null; 
    try{ 
     rd = new BufferedReader(new InputStreamReader(inStream)); 
     String line; 
     while ((line = rd.readLine()) != null) { 
      sb.append(line); 
     } 
    }finally { 
     if (rd != null) { 
      rd.close(); 
     } 
    } 

    return sb.toString(); 
} 
+0

поделиться полной трассировкой стека – sidgate

+0

Поделитесь своим кодом, как вы пытались использовать этот json, и покажите нам сообщение об ошибке. – croxy

+0

Надежность использования текущей строки json после удаления '\'? –

ответ

0
String response = "Your Response"; 
try{  
    JsonArray jAry = new JsonArray(response); 
     JsonObjct jObj; 

     for(int i=0;i<jAry.length;i++){ 
      jObj = JAry.getJsonObject(i); 

    // You can get your string from object jobj and also use it by store it value in arraylist. 
     } 
    } catch(Exception e){ 

} 
+0

, когда я положил свой ответ в JSONArray, он выкинул исключение –

+0

Пожалуйста, используйте блок try-catch, когда вы разбираете json-массив. –

+0

ya, тогда строка будет нулевой –