我需要将一个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吗?我该怎么办?
答案 0 :(得分:2)
最低有效的JSON是{}
或[]
。您需要将数字包装在对象或数组中。
例如,请尝试let param = [myNumber]
或let param = ["number" : myNumber]
。
您可以使用JSONLint之类的工具来验证您的JSON。