2013-05-13 2 views
1

레일스에서 ​​이상한 문제가 있습니다.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 [: 갱신]) 다음 driver_1 정보 마지막 기록 누락된다는 JSON에 https://gist.github.com/t2/5566652

통지. 이것이 왜 있는지. 데이터가 요청에 있습니다. 알려진 버그가 있습니까? 더 많은 정보가 필요하면 알려주세요.

답변

0

불행히도 이것은 레일스가 JSON을 (이렇게 []가 중첩되어있는) 구문 분석하는 방법입니다. 나는 전에 이것에 대항했다 - http://guides.rubyonrails.org/form_helpers.html#combining-them는 약간의 설명을했다. 당신은 숫자 키보다는 [] (두 번째 등 처음에 즉 [1], [2])에 넣을 수 있습니다 경우 사용자가 원하는대로 내가 기억하는 바로는

, 그것은 작동합니다.

+0

나는 그것을 두려워했다. 아직 볼 수있는 iOS 앱에서 게시 할 때 실제로 가능하지 않습니다. 나는 계속 파고 갈 것이다. – Trent

0

그래서 알아 냈습니다. requestSerializationMIMETypeRKMIMETypeJSON으로 설정해야했습니다.

+0

쿨 - 그게 당신이 원하는대로 작동하게 만들었습니까? params는 어떻게 생겼는가? – RobHeaton

+0

예. RestKit의'RKMIMETypeFormURLEncoded'를 계속 사용할 경우 귀하의 대답은 정확합니다. 'RKMIMETypeJSON'로 전환 할 때 모든 객체가 손상되지 않고 요청 데이터의 형식이 올바로 지정됩니다. [Charles] (http://www.charlesproxy.com)으로 요청을 조사 할 때 매우 분명했습니다. – Trent