我写了一些代码将一个NS(可变)字典放入一个NSArray中。但是在将字典添加到数组后,它似乎为每个键 - 值对创建单独的字典。见下面的例子。如何将NSArray的NSDrayaries添加到AFJSONRequestSerializer请求中?
NSMutableDictionary *info = [[NSMutableDictionary alloc] init];
[info setObject:@"123" forKey:@"user_id"];
[info setObject:@"John" forKey:@"name"];
NSArray *array = [NSArray arrayWithObject:info];
NSMutableDictionary *htmlParams = [[NSMutableDictionary alloc] init];
[htmlParams setObject:array forKey:@"users"];
预期输出:
{
"users": [
{
"user_id": 123,
"name": "John
}
]
}
我得到什么:
{
"users": [
{
"user_id": 123,
}, {
"name": "John
}
]
}
我在做什么错?
感谢您的帮助!
编辑* 我试了一些更多的东西,似乎我认为是什么问题,但它仍然对我来说很奇怪。
有点背景:当我登录NSDictionary时,我确实得到了预期的输出。但是当我将它发送到我的后端时,它会被搞砸。
我创建新NSDictionaries(如对象常量):
1:
NSDictionary *info = @{
@[
@{
@"firstname": @"John",
@"lastname": @"Doe",
},
@{
@"firstname": @"Jane",
@"lastname": @"Da",
},
]
};
2:
NSDictionary *info = @{
@0: @{
@"firstname": @"John",
@"lastname": @"Doe",
},
@1: @{
@"firstname": @"Jane",
@"lastname": @"Da",
},
};
1:出错时,所述阵列中的每一行被输出为在我的后端不同的字典。 2:表现如预期。
我不知道是什么原因导致了这个问题,但我确定它不是我的包(AFNetworking),也不是我的后端(Symfony PHP)。
编辑*
看来我需要的JSON序列添加到我的请求。
AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
manager.requestSerializer = serializer;
采取的NSMutableArray和ADDOBJECT进去然后设置数组字典 –
您的代码看起来不错,这是给预期输出。 –
你的代码非常好。它给你所期望的。 – Pushkraj