无法使用 NSJSON 序列化将数字转换为 JSON 值

Can't use NSJSONSerialization to convert number to JSON value

我需要 POST 一个 JSON 数值到服务器,通过使用 AFNetworking,我是这样做的:

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

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

出现异常:

'NSInvalidArgumentException', reason: '*** +[NSJSONSerialization dataWithJSONObject:options:error:]: Invalid top-level type in JSON write'

设置异常断点后,代码停在[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?我该怎么办?

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

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

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