无法使用NSJSONSerialization将数字转换为JSON值

时间:2015-01-23 14:06:53

标签: ios json swift afnetworking nsjsonserialization

我需要将一个JSON号码值发送到服务器,通过使用AFNetworking,我这样做:

let url:Int = "my_url_here"
let param = myNumber

let task = self.sessionManager.POST(url, param, success:mySuccessBlock, failure:myFailureBlock)

有一个例外:

  

'NSInvalidArgumentException',原因:'*** + [NSJSONSerialization dataWithJSONObject:options:error:]:JSON写入中的顶级类型无效'

设置异常断点后,代码将停在[mutableRequest setHTTPBody...]

#pragma mark - AFURLRequestSerialization
- (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request
                           withParameters:(id)parameters
                                    error:(NSError *__autoreleasing *)error
{
......
**[mutableRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:self.writingOptions error:error]];**
......
}

所以[NSJSONSerialization dataWithJSONObject:options:error:]不能用于将Int / NSNumber转换为JSON吗?我该怎么办?

1 个答案:

答案 0 :(得分:2)

最低有效的JSON是{}[]。您需要将数字包装在对象或数组中。

例如,请尝试let param = [myNumber]let param = ["number" : myNumber]

您可以使用JSONLint之类的工具来验证您的JSON。