NSDictionary到JSON String返回null

时间:2014-06-07 00:32:55

标签: ios json

NSDictionary *dict = @{ @"creditCardId" : self.creditCardId,
                            @"receiptDescription" : self.receiptDescription,
                            @"currency" : self.currency,
                            @"chargeAmount" : self.chargeAmount,
                            @"recipientFacebookAccount" : self.recipientFacebookAccount,
                            @"recipientName" : self.recipientName,
                            @"recipientMobilePhoneNumber" : self.recipientPhoneNumber,
                            @"sendByFacebook" : [self.sendByFacebook boolValue] == YES ? @"true" : @"false",
                            @"sendBySMS" : [self.sendBySms boolValue] == YES ? @"true" : @"false",
                            @"message" : self.message,
                            @"recipientFacebookImageUrl" : self.recipientFacebookImageUrl,
                            @"recipientFacebookUserId" : self.recipientFacebookUserId,
                            @"senderFacebookImageUrl" : self.senderFacebookImageUrl };   
NSDictionary *wrapperDict = @{ @"type" : self.messageName,
                                       @"deviceId" : [DSSettings sharedSettings].deviceId,
                                       @"payload" : [dict JSONString] };

[dict JSONString]返回null。相同类型的对话在其他情况下效果很好。

2 个答案:

答案 0 :(得分:0)

检查您的字典声明中没有nil值,来自关于Objective c literals的Apple文档:

  

密钥和值都不能在容器中具有值nil。如果   编译器可以证明在编译时键或值是nil,然后是a   将发出警告。否则,将发生运行时错误。

答案 1 :(得分:0)

1)由于JSONString是第三方类别,因此请确保它已实际安装。

2)NSLog在创建后保存你的字典,并确保它是正确的。

3)使用NSJSONSerialization,指定有效的error参数,然后,如果调用返回nil,请记录error参数以找出具体的错误。