首页 > 解决方案 > JAVA/API 如何获取正确的 JSON 格式

问题描述

下午好,我的问题对某些人来说可能很简单,但我正在学习,我不能得到一个好的结果。

我有一个 API,它需要获取具有以下结构的 json 对象:

{
"usuario": {
    "ID_USUARIO": 0,
    "CORREO": "maaridano12345@CORREO.com",

    
},
"persona": {
    "ID_USUARIO": 0,
    "NOMBRE_COMPLETO": "MaARIANO2 GARFEL",
    "domicilios" : [{
            "COLONIA" : "CaOLONIA23",
            "CALLE" : "SaTREET",
    }]

},
"asociado": {
    "FOTO": "",
    "ID_USUARIO": 0,
    "NOMBRE_EMPRESA": "EMPRESAMARIANO2",
    "tipoPagos" : [{
    "ID_TIPO_PAGO" : 1
    }],
    "SERVICIOS" : [{
    "ID_SERVICIO" : 2
    }]
}
}

但是,当我创建我的 JSON 对象时:

Registro = new mRegistro(userList, personList, asociadoList);

    Gson gson = new Gson();
    json = gson.toJson(Registro);

创建我的结构如下

{
"usuario": [{
    "ID_USUARIO": 0,
    "CORREO": "maaridano12345@CORREO.com",

    
}],
"persona": [{
    "ID_USUARIO": 0,
    "NOMBRE_COMPLETO": "MaARIANO2 GARFEL",
    "domicilios" : [{
            "COLONIA" : "CaOLONIA23",
            "CALLE" : "SaTREET",
    }]

}],
"asociado": [{
    "FOTO": "",
    "ID_USUARIO": 0,
    "NOMBRE_EMPRESA": "EMPRESAMARIANO2",
    "tipoPagos" : [{
    "ID_TIPO_PAGO" : 1
    }],
    "SERVICIOS" : [{
    "ID_SERVICIO" : 2
    }]
}]
}

我想要相同的结构,但在 User、Person 和 Associate 参数中我不希望它有方括号,我知道它在那里是因为它是一个列表,它是这样的,因为我的类“mRegistro”包含类“usuario,角色和关联”

添加对象的代码:

usuario = new User(0,emailInput,passwordInput,nameInput,false,false,true,false);

    ArrayList<Adress> Domicilios = new ArrayList<Adress>();
    domicilio = new Adress("MONARCAS","CALLETEST",34,12,83550,1,0,2);
    Domicilios.add(domicilio);

    persona = new Person(0, "MARIANO GARFEL","MARIANO","GARFEL","GARCIA", "9876347586","8575757575",
            "GARFSONAL@GMAIL.COM","CORREO2@FDS.COM", Domicilios);

    ArrayList<Services> Servicios = new ArrayList<Services>();
    tipo_servicio = new Services(2);
    Servicios.add(tipo_servicio);
    ArrayList<PaymentType> TipoPago = new ArrayList<PaymentType>();
    tipo_pago = new PaymentType(2);
    TipoPago.add(tipo_pago);
    asociado = new Associate("",0,"LaEmpresaChida",0,0,"La mejor empresa",2, Servicios, TipoPago );

    ArrayList<mRegistro> RegistroAsociado = new ArrayList<mRegistro>();
    ArrayList<Associate> asociadoList = new ArrayList<Associate>();
    asociadoList.add(asociado);
    ArrayList<Person> personList = new ArrayList<Person>();
    personList.add(persona);
    ArrayList<User> userList = new ArrayList<User>();
    userList.add(usuario);
    Registro = new mRegistro(userList, personList, asociadoList);

标签: javaandroidjsonapi

解决方案


请参阅此代码:

ArrayList<Associate> asociadoList = new ArrayList<Associate>();
asociadoList.add(asociado);

ArrayList<Person> personList = new ArrayList<Person>();
personList.add(persona);

ArrayList<User> userList = new ArrayList<User>();
userList.add(usuario);

Registro = new mRegistro(userList, personList, asociadoList);

您在ArrayLists这里创建了不必要的内容,因为您在Json输出中获得了列表对象。

您在这里要做的是将上面的代码更改为:

Registro = new mRegistro(usuario, persona, asociado);

但是,这也会产生错误,因为Class mRegistro需要 ArrayLists 作为参数,因此将其构造函数的参数从

mRegistro(ArrayList<User> userList, ArrayList<Person> personList, ArrayList<Associate> asociadoList)

mRegistro(User user, Person person, Associate asociado).


推荐阅读