iphone - 如何获取 JSON 值?

标签 iphone ios objective-c

响应:

{
        "AT": null,
        "EMs": [
            {
                "EC": null,
                "LM": null,
                "SCs": 0,
                "SM": "Username or Password is invalid."
            }
        ],
        "OS": 1,
        "PWD": "3456",
        "UId": 399,
        "UN": "bb",
        "COM": "Apple",
        "DId": 0,
        "DN": "iPhone",
        "DOS": "iOS",
        "EA": "aa@gmail.com",
        "FN": "bb",
        "IsCon": true,
        "IsSuc": false,
        "SD": "bb",
        "SLT": "XU0QpDVC",
        "STs": 0,
        "UQId": "1d3346c",
        "US": 2,
        "Ver": "6.0"
    }

这里我想获取“用户名或密码无效”之类的 SM 标签值。

我试过这段代码

NSError *error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

NSString *SMString = [json objectForKey:@"SM"];
NSString *OSString = [json objectForKey:@"OS"];
NSString *DIdString = [json objectForKey:@"DId"];
NSString *UIdString = [json objectForKey:@"UId"];

最佳答案

我希望它能工作:

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:responseData
                                                     options:kNilOptions
                                                       error:&error];
NSArray *EMsArray = [json objectForKey:@"EMs"];
NSAssert([EMsArray count] > 0, @"Expected at least one element in EMs array");
NSString *SMString = [[EMsArray objectAtIndex:0] objectForKey:@"SM"];

关于iphone - 如何获取 JSON 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16649005/

相关文章:

javascript - 语音合成无法让手机safari变声

ios - Swift iOS doesRelativeDateFormatting 除了 "Today"和 "Yesterday"之外还有不同的值吗?

objective-c - 什么是 OSStatus -12500?

objective-c - 是否有针对 Mac 和 iOS Cocoa/Objective C 的任何商业附加编程控件?

ios - AdMob 停用测试广告 (iOS)

iphone - 将 XCODE 项目公开为库

ios - 为什么要调用 loadMatchWithID :withCompletionHandler crash only on iPad 1 with iOS 5

iphone - 架构 i386 的 undefined symbol 将项目升级到 iOS 5

android - 外部 HTML Assets 未被 React Native bundle 在生产构建中以供 Webview 使用

iphone - 如何在泄漏的“扩展详细信息”面板中显示详细信息?