简体   繁体   中英

Returned List<Object> in JSON from C# and read in java application

here is the asmx method:

[WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public String mtdImporteUsuario()
    {
        JavaScriptSerializer ser = new JavaScriptSerializer();
        List<UsuarioBO> usuarios = new List<UsuarioBO>();
        try
        {
            query = new Procedimientos().QSelectAllUsers();
            ds = new ConexionBD().mtdEjecutaQuery_DS(query, "Usuarios");
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                usuarios.Add(new UsuarioBO
                {
                    O_COD = 1,
                    O_MENSAJE = "OK",
                    NId_usuario = Convert.ToInt32(dr["idusuario"]),
                    SCod_cuenta = dr["cuenta"].ToString(),
                    SCod_password = dr["password"].ToString(),
                    NNum_rut = Convert.ToInt32(dr["num_RutUsuario"]),
                    SDv_rut = dr["dv_RutUsuario"].ToString(),
                    SGls_nombre = dr["primer_nombre"].ToString(),
                    SGls_apellido_paterno = dr["apellido_paterno"].ToString(),
                    SGls_apellido_materno = dr["apellido_materno"].ToString(),
                    NId_perfil = Convert.ToInt32(dr["idperfil"])
                });
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
        return ser.Serialize(usuarios);
    }

and the response is:

<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://tempuri.org/">[{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":4,"NId_perfil":1155,"NNum_rut":10584082,"SGls_nombre":"Juan","SCod_cuenta":"jancan","SCod_password":"12345","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Ancan","SGls_apellido_materno":"","SDv_rut":"9"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":13,"NId_perfil":1155,"NNum_rut":10584080,"SGls_nombre":"Marco","SCod_cuenta":"msuazo","SCod_password":"msuazo","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Suazo","SGls_apellido_materno":"","SDv_rut":"2"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":15,"NId_perfil":1122,"NNum_rut":10584082,"SGls_nombre":"Administrador","SCod_cuenta":"gallendes","SCod_password":"joi7jiuml","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"","SGls_apellido_materno":"tratos","SDv_rut":"9"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":16,"NId_perfil":1155,"NNum_rut":11072809,"SGls_nombre":"Juan","SCod_cuenta":"jchavez","SCod_password":"claudia","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Chavez","SGls_apellido_materno":"","SDv_rut":"3"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":17,"NId_perfil":1155,"NNum_rut":11994419,"SGls_nombre":"German","SCod_cuenta":"gcabrera","SCod_password":"210372","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Cabrera","SGls_apellido_materno":"","SDv_rut":"8"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":20,"NId_perfil":145,"NNum_rut":17203522,"SGls_nombre":"Jose Francisco","SCod_cuenta":"jfhurtado","SCod_password":"123","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Hurtado","SGls_apellido_materno":"Ruiz-Tagle","SDv_rut":"1"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":21,"NId_perfil":1122,"NNum_rut":10584082,"SGls_nombre":"Roberto","SCod_cuenta":"tratos","SCod_password":"tratos","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Puga","SGls_apellido_materno":"Y.","SDv_rut":"9"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":22,"NId_perfil":1155,"NNum_rut":18084387,"SGls_nombre":"Nazareno","SCod_cuenta":"nfigueroa","SCod_password":"supervisor","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Figueroa","SGls_apellido_materno":"","SDv_rut":"6"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":23,"NId_perfil":1155,"NNum_rut":10584082,"SGls_nombre":"Jose Luis","SCod_cuenta":"jlramirez","SCod_password":"jose","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Ramirez","SGls_apellido_materno":"","SDv_rut":"9"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":24,"NId_perfil":1155,"NNum_rut":10584082,"SGls_nombre":"Manuel","SCod_cuenta":"mcorrea","SCod_password":"manuel","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Correa","SGls_apellido_materno":"","SDv_rut":"9"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":25,"NId_perfil":144,"NNum_rut":1,"SGls_nombre":"Administrador ","SCod_cuenta":"nubix","SCod_password":"admin","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"","SGls_apellido_materno":"","SDv_rut":"9"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":26,"NId_perfil":146,"NNum_rut":5777261,"SGls_nombre":"Franco","SCod_cuenta":"fnieri","SCod_password":"fnieri","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Nieri","SGls_apellido_materno":"","SDv_rut":"1"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":27,"NId_perfil":1122,"NNum_rut":17248311,"SGls_nombre":"Camila Fernanda Valentina","SCod_cuenta":"cflores","SCod_password":"nene2302","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"Flores","SGls_apellido_materno":"Haub","SDv_rut":"9"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":28,"NId_perfil":1,"NNum_rut":1,"SGls_nombre":"nombreDermo","SCod_cuenta":"dermo","SCod_password":"dermo","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"ApellidoPat","SGls_apellido_materno":"ApellidoMat","SDv_rut":"9"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":29,"NId_perfil":1,"NNum_rut":1,"SGls_nombre":"dime","SCod_cuenta":"dimetu","SCod_password":"dimeyo","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"tu","SGls_apellido_materno":"yo","SDv_rut":"9"},{"O_COD":1,"O_MENSAJE":"OK","NId_usuario":30,"NId_perfil":2,"NNum_rut":1,"SGls_nombre":"no","SCod_cuenta":"dimeyo","SCod_password":"dimetu","SFoto":"","SFotoOri":"","SGls_apellido_paterno":"mb","SGls_apellido_materno":"re","SDv_rut":"9"}]</string>

How can i read that response from android?

Android has built-in capabilities of manipulating JSON through the classes of the package org.json: http://developer.android.com/reference/org/json/package-summary.html

If you, instead, want to create a List of Usuario objects, in these cases, I usually use something like Jackson http://jackson.codehaus.org/ or gson https://code.google.com/p/google-gson/

In both cases you have to create a Java Bean, ie a class Usuario.java with all the fields private and all the getters and setters public, such as:

public class User {
private String name;

  public void setName(String name) {
    this.name = name;
  }

  public String getName() { return name; }
}

and you can deserialise, using jackson with:

String string = [{"name": "nameA"}, {"name":"nameB"}];

ObjectMapper mapper = new ObjectMapper();
Usuario[] usuarios = mapper.fromString(string, User[].class);

In your case you should first remove the first line.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM