私は、NSArrayにNS(Mutable)Dictionaryを入れるコードを書いています。しかし、配列に辞書を追加すると、キーと値のペアごとに別々の辞書が作成されるようです。以下の例を参照してください。NSJictionariesのNSArrayを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
}
]
}
は私が間違って何をしているのですか?
ありがとうございます!
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