【问题标题】:Crashes on AFNetworking POSTAFNetworking POST 崩溃
【发布时间】:2016-03-04 14:24:06
【问题描述】:

我正在尝试将 json 字符串作为 NSString 发布。但是在发布请求时,Xcode 崩溃并打印:“JSON 写入中的顶级类型无效”。这是我的代码:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];


[manager POST:signupBaseURLString parameters:myJSONStringObject success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"responseObject is %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"post request error is %@", error);
}];

【问题讨论】:

  • 你的 jsonstring 对象有效吗?
  • 如何创建 myJsonStringObject。您不必将其设为字符串,因为请求序列化程序会为您执行此操作。
  • 我的 json(作为字典)是一个有效的 json 对象。但是,myJSONStringObject 当然不是有效的 json,因为它是 NSString 格式。
  • 服务器,我正在发送数据,期待 json 作为字符串格式,这就是我使用字符串作为参数的原因。你能帮我把 NSString 发送到服务器吗?请求序列化程序似乎没有使它成为一个字符串,或者我做错了什么,请谁能帮帮我?

标签: ios objective-c json afnetworking-2


【解决方案1】:

参数应该是 NSDictionary,而不是字符串。我假设myJSONStringObject 是一个字符串。如果字符串是 JSON 对象的编码,则需要将其转回字典,或者最好使用您编码的字典。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多