gpt4 book ai didi

ios - 从对象到JSON的转换不正确?

转载 作者:行者123 更新时间:2023-12-01 18:44:34 25 4
gpt4 key购买 nike

我需要通过POST将此JSON发送到Web服务:

{
"plantilla" : "IL3\/il3_prof",
"contacto" : {
"email" : "vgonzalez@ub.edu",
"nombre" : "Vanesa",
"movilPersonal" : "934037680",
"apellidos" : "Gonzalez Jimenez."
"direccionTrabajoDTO" : {
"direccion" : "Feixa Llarga, S\/N 08970 Hospitalet De Llobregat (Barcelona), España"
},
},
"valoresPlantilla" : [
{
"key" : "nombre",
"value" : "Vanesa Gonzalez Jimenez."
},
{
"key" : "curso",
"value" : "Curs de test per Tecnologia"
},
{
"key" : "linked",
"value" : "es.linkedin.com\/in\/"
},
{
"key" : "direccion",
"value" : "Feixa Llarga, S\/N 08970 Hospitalet De Llobregat (Barcelona), España"
},
{
"key" : "email",
"value" : "vgonzalez@ub.edu"
},
{
"key" : "telefono",
"value" : "934037680"
}
]
}

我用值创建了对象Tarjeta:
Tarjeta *tarjeta = [[Tarjeta alloc] init];
tarjeta.plantilla = @"IL3/il3_prof";

Contacto *contacto = [[Contacto alloc] init];
contacto.nombre = @"Vanesa";
contacto.apellidos = @"Gonzalez Jimenez.";
contacto.email = @"vgonzalez@ub.edu";
contacto.movilPersonal = @"934037680";

DireccionTrabajo *direccionTrabajo = [[DireccionTrabajo alloc] init];
direccionTrabajo.direccion = @"Feixa Llarga, S/N 08970 Hospitalet De Llobregat (Barcelona), España";
contacto.direccionTrabajo = direccionTrabajo;

tarjeta.contacto = contacto;

ValorPlantilla *nombre = [[ValorPlantilla alloc] init];
nombre.key = @"nombre";
nombre.value = @"Vanesa Gonzalez Jimenez.";
ValorPlantilla *curso = [[ValorPlantilla alloc] init];
curso.key = @"curso";
curso.value = @"Curs de test per Tecnologia";
ValorPlantilla *linked = [[ValorPlantilla alloc] init];
linked.key = @"linked";
linked.value = @"es.linkedin.com/in/";
ValorPlantilla *direccion = [[ValorPlantilla alloc] init];
direccion.key = @"direccion";
direccion.value = @"Feixa Llarga, S/N 08970 Hospitalet De Llobregat (Barcelona), España";
ValorPlantilla *email = [[ValorPlantilla alloc] init];
email.key = @"email";
email.value = @"vgonzalez@ub.edu";
ValorPlantilla *telefono = [[ValorPlantilla alloc] init];
telefono.key = @"telefono";
telefono.value = @"934037680";

tarjeta.valoresPlantilla = [NSArray arrayWithObjects:nombre, curso, linked, direccion, email, telefono, nil];

return tarjeta;

之后,我使用以下方法将对象从JSON转换为:
NSMutableDictionary *tarjetaDict = [[NSMutableDictionary alloc] init];
[tarjetaDict setValue:tarjeta.plantilla forKey:@"plantilla"];

NSMutableDictionary *contactoDict = [[NSMutableDictionary alloc] init];
[contactoDict setValue:tarjeta.contacto.nombre forKey:@"nombre"];
[contactoDict setValue:tarjeta.contacto.apellidos forKey:@"apellidos"];
[contactoDict setValue:tarjeta.contacto.email forKey:@"email"];

[contactoDict setValue:tarjeta.contacto.movilPersonal forKey:@"movilPersonal"];

NSMutableDictionary *direccionDict = [[NSMutableDictionary alloc] init];
[direccionDict setValue:tarjeta.contacto.direccionTrabajo.direccion forKey:@"direccion"];

[contactoDict setValue:direccionDict forKey:@"direccionTrabajoDTO"];

[tarjetaDict setValue:contactoDict forKey:@"contacto"];

[tarjetaDict setValue:tarjeta.valoresPlantilla forKey:@"valoresPlantilla"];

return tarjetaDict;

完成此过程后,我将NSMutableDictionary(如JSON)发送到Web服务,但是它说不正确,这就是错误。
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (ValorPlantilla)'

我做错了什么?

最佳答案

将此方法添加到您的ValorPlantilla类中

-(NSMutableDictionary *)getobject
{
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];

[dict setObject:self.key forKey:@“key"];
[dict setObject:self.value forKey:@“value"];

return dict;
}

并更改此行
tarjeta.valoresPlantilla = [NSArray arrayWithObjects:[nombre getobject], [curso, linked getobject], [direccion getobject], [email getobject], [telefono getobject], nil]; 

这可能有效

关于ios - 从对象到JSON的转换不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37476292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com