我们如何将NSDictionary转换为JSON数据对象?我想将JSON数据发送到我的服务器。我正在使用下面的代码,但在涉及包含Array或其他NSDictionary的NSDictionary时遇到问题。这适用于简单的键值对。
问题:它在以下行失败并设置错误对象。如果我从源myData字典中删除数组和字典,这可以正常工作。
NSData *aPostBodyData = [NSJSONSerialization dataWithJSONObject:myData options:0 error:&error];
Where myData looks like:
{
URI = "www.google.com";
addOnTestString = "4,3,";
status = (
"In Progress",
Submitted,
Delivered
);
data =
{
URI = "www.test.com";
testString = "43";
status = (
"In Progress",
Submitted,
Delivered
);
}
}
错误追踪:
答案 0 :(得分:1)
好吧,我只是写一个包含你情况的示例代码,效果很好。
NSArray * myarray=@[@"a",@"b"];
NSMutableDictionary * dict=[[NSMutableDictionary alloc] initWithObjects:@[@"a",myarray] forKeys:@[@"str",@"arr" ]];
NSData * js=[NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil];
NSString * jsString=[[NSString alloc] initWithData:js encoding:NSUTF8StringEncoding];
NSLog(@"%@",jsString);
你得到错误的可能原因可能是;
你的myData不是NSDictionary或NSArray类型。
或在向字典添加数组时,您缺少一个点。