簡體   English   中英

如何制作NSDictionary並在iPhone中解析?

[英]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響應。

使用TouchJSON

    // 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM