【问题标题】:Parse JSON with iOS 6 and xCode 4.5.2使用 iOS 6 和 xCode 4.5.2 解析 JSON
【发布时间】:2012-12-13 12:01:44
【问题描述】:

我是 Objective-c 的新手,并且正在为特定网站构建登录页面。当用户提供信息时,服务器会返回以下 JSON:

  {
   "object":{},
   "resultCode":0,
   "resultMessage":"You successfully signed in "
 }

这就是我根据我找到的教程尝试做的事情:

-(IBAction)login{
        // Download JSON

    NSData *data = [NSData dataWithContentsOfURL: [NSURL URLWithString:[NSString stringWithFormat:@"https://www.example.com/login?username=%@&password=%@", nationalID.text,passowrd.text]]];
        NSError *error;
        NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];

        NSArray *response = [json objectForKey:@"resultMessage"];
        NSLog(@"response %@",response); 
}

我想注销“resultMessage”,但不知何故引发了异常:

    2012-12-13 06:46:50.607 myProject[7178:11303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'data parameter is nil'
*** First throw call stack:
(0x1c8d012 0x10cae7e 0x1c8cdeb 0xbff817 0x2f1a 0x10de705 0x15920 0x158b8 0xd6671 0xd6bcf 0xd5d38 0x4533f 0x45552 0x233aa 0x14cf8 0x1be8df9 0x1be8ad0 0x1c02bf5 0x1c02962 0x1c33bb6 0x1c32f44 0x1c32e1b 0x1be77e3 0x1be7668 0x1265c 0x279d 0x26c5)
libc++abi.dylib: terminate called throwing an exception

【问题讨论】:

  • 如果您确实找到了解决方案,请发布。谢谢。

标签: objective-c json ios5 ios6 xcode4.5


【解决方案1】:

看起来像 -dataWithContentsOfURL: 消息失败并返回 nil,这正是错误消息所说的。您需要确认您的 -stringWithFormat: 消息为您提供了正确的 URL 格式,并检查服务器是否返回了您期望的内容。

【讨论】:

    【解决方案2】:

    如果你能观察到问题描述:

    'NSInvalidArgumentException',原因:'数据参数为零'

    表示您从 Web url 响应的响应为 nil 或 NULL
    这不是与 JSON 解析器相关的问题。

    【讨论】:

      【解决方案3】:

      看起来你有一个简单的错字,你正在使用:

      nationalID.text,passowrd.text
      

      您可能打算不要拼错“密码”。

      【讨论】:

        【解决方案4】:

        首先尝试静态网址,例如:

        https://www.example.com/login?username=admin&password=123

        如果这会返回正确的响应,请尝试 Property Variables,例如:

        https://www.example.com/login?username=self.username.text&password=self.password.text

        您犯的一个错误是 resultMessage 是字符串而不是数组。

        希望对你有帮助

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-06-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-01-17
          • 1970-01-01
          相关资源
          最近更新 更多