Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails中的JSON解析问题_Ruby On Rails_Json_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails中的JSON解析问题

Ruby on rails Rails中的JSON解析问题,ruby-on-rails,json,ruby-on-rails-3,Ruby On Rails,Json,Ruby On Rails 3,我在Rails中看到了一个奇怪的问题 请求正文(Request.Body): JSON解析的参数(参数[:续订]): 请注意,在JSON中,最后一条记录中缺少驱动程序_1信息。不知道为什么会这样。数据在请求中。有没有我丢失的已知bug?如果您需要更多信息,请告诉我。不幸的是,Rails就是这样解析JSON的(您的[]是大量嵌套的)。我以前遇到过这种情况——我做了一些解释 据我所知,如果你能输入数字键,而不仅仅是[](即第一个是[1],第二个是[2],等等),那么它就会按照你的要求工作。所以我想出

我在Rails中看到了一个奇怪的问题

请求正文(Request.Body):

JSON解析的参数(参数[:续订]):


请注意,在JSON中,最后一条记录中缺少驱动程序_1信息。不知道为什么会这样。数据在请求中。有没有我丢失的已知bug?如果您需要更多信息,请告诉我。

不幸的是,Rails就是这样解析JSON的(您的
[]
是大量嵌套的)。我以前遇到过这种情况——我做了一些解释


据我所知,如果你能输入数字键,而不仅仅是
[]
(即第一个是
[1]
,第二个是
[2]
,等等),那么它就会按照你的要求工作。

所以我想出来了。我需要将
requestSerializationMIMEType
设置为
RKMIMETypeJSON

,我担心这一点。从iOS应用程序发布时,我还看不到这一点。我会继续挖掘。酷-这让它按照你想要的方式工作吗?两个情人长什么样?当然有。如果我继续使用RestKit的
RKMIMETypeFormURLEncoded
,您的答案是正确的。切换到
RKMIMETypeJSON
时,所有对象都完好无损,请求数据格式正确。这在检查请求时非常明显。
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&