我必须将数据发布到服务器。其中一个领域是这样的:
{"pec_email":""1"", "email"":"" }
我已经看到它发送为:
fields:"{"pec_email":""1"", "email":""}"
当我尝试发送此字段时,WebService(使用php制作)无法将该字段解码为JSON数组。它将其作为字符串处理。也许是因为报价的结尾和开头?
我用来将NSMutableDictionary
(data
)存储到DB中的JSON数组中的代码是:
NSError* error;
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:data options:0 error:&error];
if (jsonData )
{
NSString* JSONString = [[NSString alloc] initWithBytes:[jsonData bytes]
length:[jsonData length]
encoding:NSUTF8StringEncoding];
[temp setObject:JSONString forKey:@"fields"];
}
我还有一个RestKit映射:
requestMapping = [RKObjectMapping mappingForClass:[SynchObj class]];
[requestMapping addAttributeMappingsFromDictionary:mappingDict];
映射的对象具有属性
@property (nonatomic, strong) NSString *fields;
如果我认为由于格式化而导致JSON字符串的解码失败,那么如何将JSON字符串作为JSON对象发送?
答案 0 :(得分:0)
是的,问题是您要为字符串“字段”分配字符串值。您的JSON被序列化为字符串,并被视为单个字符串值。相反,请尝试将值设为NSDictionary
。假设temp
是一个字典,您的代码可能如下所示:
temp[@"fields"] = @{ @"pec_email" : @"1",
@"email" : @"" };