【问题标题】:JSON data not creating from NSDictionary不是从 NSDictionary 创建的 JSON 数据
【发布时间】:2014-02-03 13:30:16
【问题描述】:

我正在尝试将 NSDictionary 转换为 JSON 对象以通过网络发送它。但是我在将字典转换为 NSData 时遇到错误。 这是我的代码:

NSError *error=nil;
        NSDictionary *loginfbDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];

        NSData *d=[NSJSONSerialization dataWithJSONObject:loginfbDictionary options:NSJSONWritingPrettyPrinted error:&error];
        NSLog(@"error===>%@",error);
 BOOL f=[NSJSONSerialization isValidJSONObject:d];

当我在将字典转换为 NSData 之前记录它时,我将其打印出来。但是当我在将字典转换为数据后编写该代码时,我什么也没得到。我在 NSData *d 之后放置了调试点...但是我的代码在该行之后没有执行。我正在 appdelegate 文件中编写此代码。

对象包含:

  NSArray *keys = [NSArray arrayWithObjects:
                         @"loginVia",
                         @"userName",
//                             @"password",
                         @"firstName",
                         @"lastName",
                         @"gender",
                         @"dob",
                         @"email",
                         @"fb_url",
                         nil];

        NSArray *objects = [NSArray arrayWithObjects:
                            @"facebook",
                            [[NSUserDefaults standardUserDefaults] objectForKey:@"username"],
 //                                [[NSUserDefaults standardUserDefaults] objectForKey:@"password"],
                            [FBUserProfileData objectForKey:@"first_name"],
                            [FBUserProfileData objectForKey:@"last_name"],
                            [FBUserProfileData objectForKey:@"gender"],
                            ds,
                            [FBUserProfileData objectForKey:@"email"],
                            fb_url,
                            nil];

【问题讨论】:

  • objects 中有什么内容?
  • 对象中有值根据键
  • 我猜到了。对象是什么?大概是不能转成JSON的东西……
  • 当我在 NSDATA *d 之前打印 loginfbDictionary 得到所有值但是当我在那行之后打印它时我没有得到任何东西,而且我也没有得到任何东西
  • 等我用对象更新我的问题

标签: ios iphone nsdate nsjsonserialization


【解决方案1】:

您似乎正在将 NSDateNSURL 对象添加到要转换为 JSON 的字典中。问题是 JSON 没有“日期”或“URL”数据类型。因此,您需要将日期/URL 转换为字符串 (NSString) 并添加它。

【讨论】:

  • NSString *ds=[NSString stringWithFormat:@"%@",[f2 stringFromDate:sendDate]]; NSLog(@"日期 srinf %@",ds);
  • fb_url 那么,NSStringNSURL?
  • NSString *s=[nsstring stringwithcontentofurl:URl encoding:NSEncodingLosyy error:&error];这是将url转换为字符串的write方法吗?
  • 从 URL 下载内容。你可能想看看使用absoluteString
猜你喜欢
  • 1970-01-01
  • 2018-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多