2013-05-13 93 views
1

我在Rails中看到一個奇怪的問題。Rails中的JSON解析問題

請求體(request.body):

renewals[][driver_1][dl_number]=123& 
renewals[][driver_1][expiration_date]=20130513& 
renewals[][driver_1][last_name]=123& 
renewals[][driver_1][state]=AL& 
renewals[][driver_1][verified]=1& 
renewals[][driver_2][verified]=0& 
renewals[][id]=6415& 
renewals[][insurance][expiration_date]=20130513& 
renewals[][insurance][naic]=123& 
renewals[][insurance][policy_number]=123& 
renewals[][insurance][verified]=1& 
renewals[][mailing_address][address_has_changed]=0& 
renewals[][mailing_address][city]=GULF%20SHORES& 
renewals[][mailing_address][state]=AL& 
renewals[][mailing_address][street_address]=8094%20BEACH%20LANE& 
renewals[][mailing_address][zip]=35023& 
renewals[][driver_1][dl_number]=123& 
renewals[][driver_1][last_name]=123& 
renewals[][driver_1][state]=AL& 
renewals[][driver_1][verified]=1& 
renewals[][driver_2][verified]=0& 
renewals[][id]=6412& 
renewals[][insurance][expiration_date]=20130513& 
renewals[][insurance][naic]=123& 
renewals[][insurance][policy_number]=123& 
renewals[][insurance][verified]=1& 
renewals[][mailing_address][address_has_changed]=0& 
renewals[][mailing_address][city]=HUEYTOWN& 
renewals[][mailing_address][state]=AL& 
renewals[][mailing_address][street_address]=123%20ANY%20LANE& 
renewals[][mailing_address][zip]=35023& 
renewals[][driver_1][dl_number]=123& 
renewals[][driver_1][last_name]=123& 
renewals[][driver_1][state]=AL& 
renewals[][driver_1][verified]=1& 
renewals[][driver_2][verified]=0& 
renewals[][id]=6411& 
renewals[][insurance][expiration_date]=20130513& 
renewals[][insurance][naic]=123& 
renewals[][insurance][policy_number]=123& 
renewals[][insurance][verified]=1& 
renewals[][mailing_address][address_has_changed]=0& 
renewals[][mailing_address][city]=HUEYTOWN& 
renewals[][mailing_address][state]=AL& 
renewals[][mailing_address][street_address]=104%20MERRIMONT%20ROAD& 
renewals[][mailing_address][zip]=35023& 

JSON解析的PARAMS(PARAMS [:續展):在JSON https://gist.github.com/t2/5566652

注意,driver_1信息丟失最後一個記錄。不知道這是爲什麼。數據在請求中。我錯過了任何已知的錯誤?讓我知道你是否需要更多信息。

回答

0

不幸的是,這就是Rails解析JSON的方式(你的[]被大量嵌套)。我以前遇到過這個 - http://guides.rubyonrails.org/form_helpers.html#combining-them給了一些解釋。

從我還記得什麼,如果你可以把數字鍵而不是僅僅[](即[1]的第一個,[2]第二等),那麼它會工作,你想讓它。

+0

我很害怕這個。從iOS應用程序發佈,我可以看到,但真的不可能。我會繼續挖掘。 – Trent 2013-05-14 03:41:14

0

所以我想通了。我需要將requestSerializationMIMEType設置爲RKMIMETypeJSON

+0

酷 - 這是否使你的工作如何?這些參數是什麼樣的? – RobHeaton 2013-05-14 08:28:20

+0

當然可以。在我繼續使用RestKit的'RKMIMETypeFormURLEncoded'的情況下,你的回答是正確的。當切換到RKMIMETypeJSON時,所有對象都是完整的,並且請求數據格式正確。與[Charles](http://www.charlesproxy.com)一起檢查請求時非常明顯。 – Trent 2013-05-14 13:31:05