2016-04-27 9 views
0

AFNetworkingはJSONリクエストでBOOL値をtrue/falseとして表現したくありません。 @YES、するNSNumberが、チャンスがない、それはAfNetworking 3AFNetworking 3.Xを使用してBOOLをJSONにポストするObjectiveC

にこのPARAM辞書を与えるその後、0または1

NSMutableDictionary *data = [[NSMutableDictionary alloc] init]; 
[data setValue:@YES forKey:@"favorite"]; 

NSMutableDictionary *params = [[NSMutableDictionary alloc] init]; 
[params setObject:data forKey:@"data"]; 

に変換し

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; 
AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer]; 
[serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 

manager.requestSerializer = serializer; 


[manager POST:@"HTTPS://JSON URL" parameters:params progress:^(NSProgress *uploadProgress) { 
} success:^(NSURLSessionDataTask * task, id responseObject) { 
//SUCCESS 
} failure:^(NSURLSessionDataTask *task, NSError *error) { 
//FAILED REQUEST 
}]; 
+1

辞書にブール値を配置する方法がするNSNumberを使用することですあなたがやっているように。 JSONとやりとりするたびにこれを行っています。できます。なぜそれは動作していないと思いますか? – Fogmeister

+0

NSLogで "params"を記録していますが、0または1があります。 –

+1

はい、そうです。それはなぜ問題なのですか?それはどのように見えますか。 – Fogmeister

答えて

0

使用[NSNumber numberWithBool:YES]

0

みましたこれは私がきた方法ですブーリアンをトグルして、AFNetworkingを使用してJSONブール値として送信しています:

self.petActive = ! self.petActive; 
    NSNumber* newFMPstate = self.petActive ? @YES : @NO; 
    NSDictionary *fmpDict = @{ @"petActive": newFMPstate }; 
    /// ... assemble endpoint for put and pass it fmpDict 

@YESと@NOはそれぞれ

{"petActive":true} 
{"petActive":false} 

このJSONを生成する(私は三項演算子が冗長である知っているが、それは読みやすさを追加しているようだ)