java - 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);
解决方案
请参阅此代码:
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)
.
推荐阅读
- python - 从列中搜索行(&不是|)上的一组值
- linux - 如何从 tty 读取串行输入并将其写入 Linux 中的文件?
- php - PHP 简码产生意想不到的结果
- java - Junit 5 的 assertEquals 精度为 double
- java - Selenium - Java:有没有办法使用 WebElement 而不是按类获取定位器
- python - 有没有我可以在 python 中使用的函数来实现 Matlab 函数 qtdecomp?
- dns - 为什么域名中的资源(例如hello.jpg)访问无效,但IP地址有效
- ios - Swift:如何在返回类型为 self 的协议中声明 func?
- html - CSS绝对位置子菜单在父容器上显示滚动条
- php - 我无法在我的自定义插件 php 类中挂接到 wpcf7_mail_sent