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
- setting screenOrientation en AndroidManifest.xml no funciona
- Cómo convertir el objeto de cursor en XML o JSON en android
- Android Studio: El cursor de texto desaparece / desapareció después de abrir alguna otra clase o pegar texto en diferentes clases
- Cómo crear una tabla en Android con varias columnas?
- Si declaro un fragmento en un diseño XML, ¿cómo lo apruebo un paquete?
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()); .... } ...
- ¿Cómo puedo obtener de forma confiable un color de un AttributeSet?
- Android cómo hacer intrincados fondos y fronteras
- Obtener atributos con estilo para el niño de la definición de estilo de los padres
- ¿Es posible crear esta forma simple en Android XML?
- Agregar nuevo botón a la barra de acción
- Si ScrollView sólo admite a un hijo directo, ¿cómo se supone que puedo hacer que un diseño completo se pueda desplazar?
- Color del fondo de la tostada que es cambiado
- Cómo configurar un diseño de menú principal en Android?
Pruebe este código. Le ayudará.
http://www.codeproject.com/Articles/45275/Create-a-JSON-WebService-in-ASP-NET-2-0-with-a-jQu
- Cómo compensar la vista de globo en un marcador en Google Map V2?
- ActionBar Drop Down navegación – el cambio de orientación pone fragmento incorrecto en