-1

我们如何将 NSDictionary 转换为 JSON 数据对象?我想将 JSON 数据发送到我的服务器。我正在使用下面的代码,但在 NSDictionary 包含 Array 或进一步的 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
        );
}
}

错误跟踪:

在此处输入图像描述

4

1 回答 1

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 类型中。

或者在将数组添加到字典时,您错过了一点。

于 2013-03-20T19:05:01.767 回答