Creación de un WebService ASP.net que devuelve JSON en lugar de XML

Tal vez el método está volviendo como debería, pero básicamente he hecho un método de prueba que se parece a esto

[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string TestJSON() { var location = new Location[2]; location[0] = new Location(); location[0].Latitute = "19"; location[0].Longitude = "27"; location[1] = new Location(); location[1].Latitute = "-81.9"; location[1].Longitude = "28"; return new JavaScriptSerializer().Serialize(location); } 

Cuando me golpeó esto desde mi aplicación Android obtener una excepción como esta

 Value <?xml of type java.lang.String cannot be converted to JSONArray 

Pensé que este método volvería justo JSON recto, pero esto es lo que devuelve el método de servicio web

 <?xml version="1.0" encoding="utf-8"?> <string xmlns="http://tempuri.org/">[{"Latitute":"19","Longitude":"27"},{"Latitute":"-81.9","Longitude":"28"}]</string> 

¿Se supone que es así? ¿Hay alguna manera de eliminar las cosas XML que están fuera de JSON? No estoy seguro de lo que tengo que hacer en mi webservice para hacer que devuelva el formato correcto de los datos

Código que utiliza en Android para llamar al servicio web

  public String readWebService(String method) { StringBuilder builder = new StringBuilder(); HttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet("http://myserver.com/WebService.asmx/" + method); Log.d(main.class.toString(), "Created HttpGet Request object"); try { HttpResponse response = client.execute(httpGet); Log.d(main.class.toString(), "Created HTTPResponse object"); StatusLine statusLine = response.getStatusLine(); Log.d(main.class.toString(), "Got Status Line"); int statusCode = statusLine.getStatusCode(); if (statusCode == 200) { HttpEntity entity = response.getEntity(); InputStream content = entity.getContent(); BufferedReader reader = new BufferedReader(new InputStreamReader(content)); String line; while ((line = reader.readLine()) != null) { builder.append(line); } return builder.toString(); } else { Log.e(main.class.toString(), "Failed to contact Web Service: Status Code: " + statusCode); } } catch (ClientProtocolException e) { Log.e(main.class.toString(), "ClientProtocolException hit"); e.printStackTrace(); } catch (IOException e) { Log.e(main.class.toString(), "IOException hit"); e.printStackTrace(); } catch (Exception e) { Log.e(main.class.toString(), "General Exception hit"); } return "WebService call failed"; } 

Entonces llamaría a ese método en algún lugar del código como

 try { JSONArray jsonArray = new JSONArray(readWebService("TestJSON")); Log.i(main.class.toString(), "Number of entries " + jsonArray.length()); .... } ... 

  • Excepción de reproducción de Android Studio: "mBaselineAlignedChildIndex de LinearLayout apunta a una vista que no sabe cómo obtener su línea de base"
  • Error android.permission.WRITE_SECURE_SETTINGS
  • Recurso de cadena duplicado en strings.xml android
  • No se encontró ningún identificador de recurso para el atributo 'layout_behavior' en el paquete
  • Android sdk main.out.xml error de análisis?
  • Android: IME sin teclado
  • Android Resource - Array de matrices
  • Android: cómo usar el color del estilo en XML de otro diseño
  • Cómo obtener una imagen semi transparente en la parte superior de otra imagen para mantener el texto en android (captura de pantalla proporcionada)
  • ¿Por qué mi EditText se expandió horizontalmente o verticalmente después de configurar Width and Height como wrap_content en android?
  • Android Maps: No se pudo cargar el mapa. No se pudo contactar con los servidores de Google
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.