0

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"}

また、それを解析して、「From Franklin Av To Grand Army Plaza03:56:30 - 03:58:30」というテキストとすべての ID、つまり 1,239N,75 を取得します。誰かがそれを行う方法を知っているなら、私を助けてください。

4

4 に答える 4

2

iOS 5.0 以降を使用している場合は、これを試してください。

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

ここで、responseData は NSData (取得している応答) であり、NSString ではありません。また、「From Franklin Av To Grand Army Plaza03:56:30 - 03:58:30」というテキストを取得するには、次を使用できます。

[[[json objectForKey@"aps"] objectForKey@"alert"] objectForKey@"body"];
于 2012-06-25T11:14:21.910 に答える
1

上記の応答を主に NSData (以下のスニペットのデータ) に保存します。

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

これで NSDictionary json ができました。最初の要件に使用[[[json objectForKey:@"aps"] objectForKey:@"alert"] valueForKey:@"body"]し、2 番目の要件に使用します。

[json valueForKey:@"user_id"];
[json valueForKey:@"start_station_id"];
[json valueForKey:@"node_id"]; 

注: iOS 5 以降には、JSON 応答を処理できる NSJSONSerialization があります。

于 2012-06-25T11:13:45.860 に答える
0

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 パーサー ライブラリも使用できます。それらの多くがあります。

于 2012-06-25T10:59:33.823 に答える
0

このコードを試してください

NSDictionary *menu = (NSDictionary *) [data objectForKey:@"aps"];
NSDictionary *data = (NSDictionary *) [menu objectForKey:@"alert"];
NSString *com=(NSString *) [data objectForKey:@"body"]];
NSLog(@"Body= %@",com);
于 2012-06-25T11:03:10.243 に答える