0

次のような JSON 応答があるとします。

 "is_following": false, 

これをobjective-CでBOOLに変換するにはどうすればよいですか?

これは正しくないようです:

 [[NSNumber numberWithInt:(int)[profileData valueForKey:@"is_following"]] boolValue];
4

3 に答える 3

1

使用する JSON パーサーによって異なります。たとえば、TouchJSON を使用する場合はboolValue、解析されたオブジェクトを呼び出すだけです。[[profileData objectForKey:@"is_following"] boolValue]

于 2012-06-26T22:36:38.803 に答える
0

-valueForKeyオブジェクト ( id) を返し、BOOLのエイリアスであるため、結果signed charを呼び出すだけです。-intValue

BOOL asBool = [[profileData valueForKey:@"is_following"] intValue];
于 2012-06-26T22:27:07.440 に答える
0

なぜ-boolValue直接電話しないのですか?

[profileData objectForKey:@"is_following"] boolValue]

JSON フレームワークは、その JSONfalse値をNSNumber*. また、実際NSString*には にも応答する-boolValueため、脳死状態の JSON ソースが放出された場合"false"でも、カバーされます。ただし、JSON にnullまたは任意のコンテナー タイプが含まれている場合は問題が発生するため、値が実際にどのクラスであるかを再確認することをお勧めします。

*注: の-objectForKey:代わりに使用しました。-valueForKey:これが JSON の場合profileDataNSDictionary*. -objectForKey:からデータを抽出するために使用する正しい方法NSDictionariesです。

于 2012-06-26T22:28:58.523 に答える