繁体   English   中英

如何在iOS应用上解析JSon数据

[英]How to parse JSon data on iOS app

{"code":200,"msg":"","type":"DEFAULT",
"data{"thumbsId":209834,"thumbsKind":"UP","fbObjectId":null,"canPostFB":true,"thumbsupCnt":292,"episodeId":2491},
"errorDetails":null}

我想获取数据的thumbskind值。 我的代码如下:

@property(nonatomic, assign) NSInteger code;
@property(nonatomic, copy) NSString *msg;
@property(nonatomic, copy) NSString *type;
@property(nonatomic, copy) NSString *details; 
@property(nonatomic, copy) NSDictionary *data;


 NSDictionary *obj = (NSDictionary *)sender;

self.code = [[obj objectForKey:@"code"] intValue];
self.msg = [obj valueForKeyPath:@"msg"];
self.type = [obj valueForKeyPath:@"type"];
self.data = [obj valueForKeyPath:@"data"];
self.details = [obj valueForKeyPath:@"errorDetails"];

我可以得到codetypemsg等等。

但是我无法获得data值。 如何获取其值,如thumbsIdthumbsKindthumbsupCnt

数据是字典中的字典,所以试试看

@property(nonatomic, copy) NSString * thumbsId;
@property(nonatomic, copy) NSString * thumbsKind;  
. 
. 
.

NSDictionary *obj = (NSDictionary *)sender;
NSDictionary *dataDict = (NSDictionary *)  [obj objectForKey:@"data"]


self. thumbsKind = [dataDict valueForKeyPath:@"thumbsKind"]; 
self.thumbsId = [dataDict valueForKeyPath:@"thumbsId"];
. 
.
NSInteger thumbsId = [[self.data objectForKey:@"thumbsId"] intValue];

NSString *thumbsKind = [self.data objectForKey:@"thumbsKind"];

......

您的数据是错误的Json格式

应该是这样的:

"data:{"thumbsId":209834,"thumbsKind":"UP","fbObjectId":null,"canPostFB":true,"thumbsupCnt":292,"episodeId":2491},

代替

"data{"thumbsId":209834,"thumbsKind":"UP","fbObjectId":null,"canPostFB":true,"thumbsupCnt":292,"episodeId":2491},

然后尝试

NSDictionary *dataDict = (NSDictionary *)  [obj objectForKey:@"data"]
self. thumbsKind = [dataDict valueForKeyPath:@"thumbsKind"]; 
self.thumbsId = [dataDict valueForKeyPath:@"thumbsId"];

你可以这样做

NSInteger thumbsId = [[obj valueForKeyPath:@"data.thumbsId"] intValue];

您可以通过使用以下命令减轻编码痛苦并节省时间
JSON加速器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM