NSArray에 NS (Mutable) Dictionary를 넣는 코드를 작성했습니다. 그러나 배열에 사전을 추가 한 후에는 각 키 - 값 쌍에 대해 별도의 사전을 만드는 것으로 보입니다. 아래 예를 참조하십시오.AFJSONRequestSerializer 요청에 NSDictionaries의 NSArray를 어떻게 추가합니까?
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
}
]
}
?
도움 주셔서 감사합니다.
EDIT * 나는 더 많은 것들을 시도했고 그것은 문제가 무엇인지 알았지 만 여전히 나에게는 이상하게 보입니다.
약간의 배경 : NSDictionary를 로깅 할 때 실제로 예상되는 출력을 얻습니다. 하지만 백엔드로 보내면 망할 것입니다.
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
난 (객체 리터럴로) 새로운 NSDictionaries로 만든 잘못 어레이의 각 라인은 다음과 같이 출력된다 내 백엔드에있는 다른 사전. 2 : 예상대로 작동합니다.이 문제의 원인은 모르지만 내 패키지 (AFNetworking)가 아니라 내 백 엔드 (Symfony PHP)가 아닌 것으로 확신합니다.
EDIT *
내가 내 요청에 JSON 시리얼을 추가하는 데 필요한 것 같다.AFJSONRequestSerializer *serializer = [AFJSONRequestSerializer serializer];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[serializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
manager.requestSerializer = serializer;
다음 귀하의 코드는, 그것은 예상 출력을주고 잘 보이는 사전 –
에 해당 배열을 설정 그것으로있는 NSMutableArray 및 addObject을. –
코드가 완벽하게 괜찮습니다. 당신이 기대하는 것을주는 것. – Pushkraj