[英]How to make NSDictionary and parse it in iPhone?
我必須在NSDictionary以下
{"aps":{"sound":"default",
"alert":{"body":"From Franklin Av To Grand Army Plaza03:56:30 - 03:58:30",
"action-loc-key":"View"},"badge":1},"user_id":"1","start_station_id":"239N","node_id":"75"}
我也想解析它並獲得“從富蘭克林大道到大軍廣場03:56:30-03:58:30”文本和所有ID,即1,239N,75。 如果有人知道該怎么做,請幫助我。
如果您使用的是iOS 5.0及更高版本,請嘗試以下操作:
NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData
options:kNilOptions
error:&error];
其中responseData是NSData(您得到的響應)不是NSString。 並獲取文本“從富蘭克林大道到大軍廣場03:56:30-03:58:30”,您可以使用:
[[[json objectForKey@"aps"] objectForKey@"alert"] objectForKey@"body"];
我假設將上面的響應主要存儲在我假設的NSData中(以下代碼段中的數據):
NSError* error;
NSDictionary* json = [NSJSONSerialization
JSONObjectWithData:data
options:kNilOptions
error:&error];
現在您有了NSDictionary json。 將[[[json objectForKey:@"aps"] objectForKey:@"alert"] valueForKey:@"body"]
用於您的第一個需求,而第二個需求則使用:
[json valueForKey:@"user_id"];
[json valueForKey:@"start_station_id"];
[json valueForKey:@"node_id"];
注意:iOS 5及更高版本具有NSJSONSerialization,可以處理JSON響應。
// i think you will have a downloaded NSData here, but..you gave us a string
NSData *responseData = [string dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
CJSONDeserializer *deserializer = [CJSONDeserializer deserializer];
deserializer.nullObject = NULL;
NSDictionary *JSON_dictionary = [deserializer deserialize:responseData error:&error];
NSLog(@"%@",[[[JSON_dictionary objectForKey:@"aps"] objectForKey:@"alert"] objectForKey:@"body"]);
您也可以使用任何其他JSON解析器庫, 其中有很多
試試這個代碼
NSDictionary *menu = (NSDictionary *) [data objectForKey:@"aps"];
NSDictionary *data = (NSDictionary *) [menu objectForKey:@"alert"];
NSString *com=(NSString *) [data objectForKey:@"body"]];
NSLog(@"Body= %@",com);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.