我需要从Parse.com
,REST API
和AFNetworking
检索多个用户。我需要使用一个API调用来检索这些用户。
以下代码可以获取一个用户。您会注意到我包含一个objectId
,因为我只提取一个用户。我需要修改此代码,以便我可以调用多个objectId's
,从而检索多个用户:
//Setup request manager
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setValue:ApplicationId forHTTPHeaderField:@"X-Parse-Application-Id"];
[manager.requestSerializer setValue:APIKey forHTTPHeaderField:@"X-Parse-REST-API-Key"];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSDictionary *query = @{@"objectId":@"cbfG5dFJy7"};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:query
options:0
error:&error];
if (!jsonData) {
NSLog(@"Error: %@", [error localizedDescription]);
}
NSString *dateQueryString = [[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding];
NSDictionary *parameters = @{@"where": dateQueryString};
//Perform request
[manager GET:[NSString stringWithFormat:@"%@users", BaseURLString] parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
// Handle success
completion(nil, self.mentors, nil);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// Handle failure
completion(nil, nil, error);
}];
在Parse.com REST API documentation
中,它表示您可以执行compound or query
来实现此目的,并在GET请求卷曲示例中列出以下内容:
--data-urlencode 'where={"$or":[{"wins":{"$gt":150}},{"wins":{"$lt":5}}]}' \
不幸的是,我不知道如何将其转化为objective-c。这只是在python中的相同示例,如果有帮助:
params = urllib.urlencode({"where":json.dumps({
"$or": [
{
"wins": {
"$gt": 150
}
},
{
"wins": {
"$lt": 5
}
}
]
})})
我只需要在objectId's
来电中添加多个AFNetworking
,并告诉Parse.com
我会接受此objectId
或objectId
的结果}等等,以便Parse.com
将所有这些用户都归还给我。
答案 0 :(得分:2)
您目前只有一个字典可用于您转换为JSON的查询
NSDictionary *query = @{@"objectId":@"cbfG5dFJy7"};
您显示的示例是具有单个键的字典,其中值是与当前查询类似的字典数组。
@{@"$or":@[ @{@"objectId":@""} , @{@"objectId":@""} ]}
构建此结构后,将其转换为JSON并将其添加到当前的请求中。