2016-08-22 1 views
-1

私は自分のアプリケーションでデータを辞書に変換するために次の方法を使用しましたが、jsonオブジェクトがnilだったことを示しています。Objective CでJSON直列化データをNSDictionaryに変換するにはどうすればよいですか?

"jsonObject is null"と表示されています。 "error:nil"に問題はありますか?

- (void)postNonceToServer:(NSString *)paymentMethodNonce { 
// Update URL with your server 


AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"]; 



NSDictionary *parameters = @{@"payment_method_nonce":paymentMethodNonce,@"amount":amountStr,@"tripid":tripIdStr,@"currencycode":currencyStr}; 

[manager POST:@"http:url.php" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    //NSArray *response = responseObject; 
    //response = responseObject; 

    NSLog(@"responseObject is %@",responseObject); 

    jsonObject=[NSJSONSerialization 
       JSONObjectWithData:responseObject 
       options:NSJSONReadingMutableLeaves 
       error:nil]; 
    NSLog(@"jsonObject is %@",jsonObject); 


    } 
     failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

      NSLog(@"Error: %@", error); 
     }]; 

} 
+1

いいえ、「error:nil」は「問題ありません」ということは許可されていますが、問題をデバッグするのに役立ち、エラーパラメータの使用を避けることは推奨できません。それはあなたの車に警告を隠すようなものです。それが動作する限り、それは大丈夫です。しかし、そうでない場合...また、(NSStringに変換する前に) 'responseObject'を表示すると、助けになるかもしれません。 – Larme

+0

これは、responseObjectがNSASCIIStringEncodingである場合に発生します。 'JSONObjectWithData'は' NSUTF8StringEncoding'を必要とします。それはWatchOS2.2で私に起こっていたものです。 – Brandon

+0

@ Larmeさんに詳細を教えてください –

答えて

0

ここではAFNetworking 3.0を使用しています。だから私はAFNetworking 3.0バージョンで "POST"メソッドコードを提供します。

ステップ1:1つのNSObjectクラスを作成し、このメソッドを.hファイルに書き留めます。

+ (void)requestPostUrl: (NSString *)serviceName parameters:(NSDictionary *)dictParams success:(void (^)(NSDictionary *responce))success failure:(void (^)(NSError *error))failure; 

ステップ2: - ここの.mファイルに をこのコードを書き留め、 "kBaseURL" WebサービスのURLとサービスの "serviceNameを" 名前を意味します。

+0

Brother、ありがとうrespoonse @ Anand Nanavaty –

+0

お元気ですか...あなたのエラーやエラースナップを私に送ってください、私は理解します。 @Saravanakumar –

関連する問題