我發送一個字典'childDetails',它有一個字典(獎勵)作爲它的一個對象。AFNetworking - 使用字典時請求格式不正確
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:url parameters:childDetails constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
這種「獎勵」字典有兩個密鑰「名」和「價值」,它看起來像{@"name",@"Reward 1",@"value",@"10"}
。
當它發佈到服務器時,服務器收到它如下;
Array
(
[group_id] => 5
[name] => John Doe
[rewards] => Array
(
[0] => Array
(
[name] => Sample reward 2
)
[1] => Array
(
[value] => 50
)
[2] => Array
(
[name] => Sample Reward 1
)
[3] => Array
(
[value] => 10
)
)
[tasks] => Array
(
[0] => Array
(
[title] => Default task one
)
[1] => Array
(
[title] => Default task two
)
[2] => Array
(
[title] => Default task five
)
)
[token] => 5332884c2bc8c5
)
任何想法如何解決這個問題?
任何幫助,非常感謝。
在此先感謝
兒童細節字典看起來像這樣 { 「group_id」= 5; name =「John Doe」; 獎勵=( { 名稱= 「樣品獎勵2」; 值= 50;} , { 名稱= 「樣品獎勵1」; 值= 10;} ); 任務=( { 標題= 「默認任務的一個」; },{ 標題 = 「默認任務兩個」; },{ 標題 = 「默認任務五」 } ); token = 5332884c2bc8c5; } –
好的我不明白。如果你在服務器端需要相同的對象,最好的方法是自己序列化對象。使用JSON格式序列化獎勵項目(NSJSONSerialization),並將JSON字符串放入獎勵屬性中。在服務器端(你似乎使用PHP作爲服務器語言),你有json_decode函數可以正確地反序列化你的字符串。不要忘記對通過URL傳輸的JSON字符串進行編碼/解碼。 –
我現在已經解決了這個問題。我想知道是否有其他正確的方法 –