1

我们必须创建一个 Jason 文件以发送到服务器。我发现这样做的方法是:

NSDictionary* dic = @{@"Username" :userName,
                          @"Firstname" :firstName,
                          @"Lastname" : lastName,
                          @"Email" : email,
                          @"Password" : pass,
      };
     NSData* json = [NSJSONSerialization dataWithJSONObject:dic options:0 error:nil];

我真的不明白为什么在创建dic已经是 Json 文件的 之后,我必须NSJSONSerialization在创建NSData? ,为什么不把 设置dicNSData?这个序列化到底是做什么的?另外,为什么不创建一个NSString包含这个结构的?

4

1 回答 1

2

dic是一个 Objective-C 字典(键值对的集合),与 JSON 无关。打印字典可能看起来类似于 JSON,但事实并非如此。

NSJSONSerialization从字典创建 JSON 数据。JSON 是一种文本格式,并记录在此处,例如:http: //www.json.org。字典的 JSON 数据如下所示:

{"Firstname":"John","Email":"jon@apple.com","Username":"john","Lastname":"Doe","Password":"topsecret"}

NSJSONSerialization创造NSData而不是NSString只是该类作者的设计决定。您可以将数据转换为字符串

NSString *jsonString = [[NSString alloc] initWithData:json encoding:NSUTF8StringEncoding];
于 2013-03-22T08:21:27.580 回答