簡體   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