将NSDictionay解析为JSON NSData的问题

时间:2013-03-20 18:37:23

标签: ios objective-c json cocoa-touch nsdictionary

我们如何将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
        );
}
}

错误追踪:

enter image description here

1 个答案:

答案 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类型。

或在向字典添加数组时,您缺少一个点。