寻找如何发布 json 的示例AFHTTPClient
。我看到有一个 postPath 方法需要一个NSDictionary
AFJSONEncode 方法返回一个NSData
。有没有一种简单的方法可以将对象序列化为NSDictionary
,或者有更简单的方法使用 jsonkit 吗?
我只需要将对象作为 json 发布到 REST API。
UPDATE:所以我尝试传递字典,但它似乎在序列化嵌套数组时中断。
例如,如果我有一个对象:
Post* p = [[Post alloc] init];
p.uname = @"mike";
p.likes =[NSNumber numberWithInt:1];
p.geo = [[NSArray alloc] initWithObjects:[NSNumber numberWithFloat:37.78583], [NSNumber numberWithFloat:-122.406417], nil ];
p.place = @"New York City";
p.caption = @"A test caption";
p.date = [NSDate date];
who's get 字典包含如下数据:
{
caption = "A test caption";
date = "2011-12-13 17:58:37 +0000";
geo = (
"37.78583",
"-122.4064"
);
likes = 1;
place = "New York City";
}
序列化要么彻底失败,要么 geo 不会被序列化为数组,而是序列化为字符串文字,例如("37.78583", "-122.4064");
如果您要发布到 JSON REST API,则应该存在从对象属性到 JSON 键的特定映射,对吧?也就是说,服务器期望某些命名字段中的某些信息。
所以你想做的是构建一个NSDictionary
or NSMutableDictionary
以及 API 中使用的键及其相应的值。然后,只需将该字典传递到parameters
任何请求方法的参数AFHTTPClient
。如果parameterEncoding
客户端的属性设置为AFJSONParameterEncoding
,那么请求正文将自动编码为 JSON。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)