-1

私の回答: (JSON)

NSString *responseString = [[NSString alloc] initWithData:responseData4 encoding:NSUTF8StringEncoding];

NSLog(@"responseString... %@",responseString);

 {"AT":"dMaOtJxV0EgAAAAAAAAAAAAAAAAAAAAA","DId":320,"EMs":null,"Em":null,"LGT":null,"OS":"Success","PWD":"DEBC0C7321EF1386F7F22A3D8BE754C9FF04A596","SId":0,"Sku":"Director","UId":1664,"UN":"s1","COM":null,"DN":null,"DOS":null,"EA":"s+1@gmail.com","FN":"s","IsCon":true,"IsLT":true,"IsPU":false,"IsSuc":false,"IsSync":true,"IsTri":false,"LLD":"\/Date(-62135578800000-0500)\/","LN":"k","MOD":null,"NDD":"\/Date(1376971200000-0400)\/","NDDS":"8\/20\/2013","PN":"(324) 325-4353","SD":"s","SLT":"HBoY7mHJ","STs":"EN","UQId":null,"US":3,"Ver":null}

ここで IsPU,IsCon タグの値を取得する必要があります。

次に、次のようなコードを記述しました

NSError *error;

id jsonMain = [NSJSONSerialization JSONObjectWithData:responseData4 options:kNilOptions error:&error];

NSString *IsPUstring = [jsonMain objectForKey:@"IsPU"];

NSString *IsConstring = [jsonMain objectForKey:@"IsCon"];


NSLog(@"IsPUstring...%@",IsPUstring);

NSLog(@"IsConstring...%@",IsConstring);

出力:

IsPUstring... 0

IsConstring... 1

私の問題:

元のタグの値:

"IsCon":真、"IsPU":偽

でもJSONシリアライズしたら0と1になっちゃったでしょ?

ここで true または false のような元の値を取得する方法はありますか?

4

2 に答える 2

1

あなたは怒鳴るようにそれを得ることができます..

 BOOL  IsPUstring  = [[jsonMain objectForKey:@"IsPU"] boolValue];
 BOOL IsConstring = [[jsonMain objectForKey:@"IsCon"] boolValue];

NSLog(@"IsPUstring...%d",IsPUstring);

NSLog(@"IsConstring...%d",IsConstring);

この値をフォーマットで取得したい場合は、以下のNSStringコードも使用できます..

NSLog(@"IsPUstring... %s", IsPUstring ? "true" : "false");
NSLog(@"IsConstring... %s", IsConstring ? "true" : "false");
于 2013-07-23T11:47:17.300 に答える
0

0 と 1NO と YES です。JSON データのブール オブジェクトは NSNumber* に変換され、NSNumber メソッド [aNumber boolValue] は YES と NO を返します。

0、1、または 2 の値を持つ整数も NSNumber* に変換され、これら 3 つの値に対して [aNumber boolValue] は 0 の場合は NO、1 の場合は YES、2 の場合は YES を返します (ゼロ以外の数値の場合は YES)。

本当に false / true と 0 / 1 を区別したい場合:

NSNumber* isPU = jsonMain [@"IsPU"];

if (isPU == (id) kCFBooleanFalse) { ... } // isPU is false and not 0 or "0"
else if (isPU == (id) kCFBooleanTrue) { ... } // isPU is true and not 1 or "1"
else { ... } // isPU is something else. 
于 2014-03-18T16:14:24.597 に答える