将NSDictionary映射到JSON数组

时间:2013-12-10 10:16:55

标签: ios json

我必须将数据发布到服务器。其中一个领域是这样的:

{"pec_email":""1"", "email"":"" }

我已经看到它发送为:

fields:"{"pec_email":""1"", "email":""}"

当我尝试发送此字段时,WebService(使用php制作)无法将该字段解码为JSON数组。它将其作为字符串处理。也许是因为报价的结尾和开头? 我用来将NSMutableDictionarydata)存储到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对象发送?

1 个答案:

答案 0 :(得分:0)

是的,问题是您要为字符串“字段”分配字符串值。您的JSON被序列化为字符串,并被视为单个字符串值。相反,请尝试将值设为NSDictionary。假设temp是一个字典,您的代码可能如下所示:

temp[@"fields"] = @{ @"pec_email" : @"1", 
                     @"email"     : @"" };