Ruby on rails 3 解析生成的JSON时出现问题
我得到了一个通过Rails3(通过API)生成的JSON对象。我需要在它周围放置一个命名的标签,或者松开第一个“层”。我知道这听起来很奇怪,但我不能在客户端循环它Ruby on rails 3 解析生成的JSON时出现问题,ruby-on-rails-3,Ruby On Rails 3,我得到了一个通过Rails3(通过API)生成的JSON对象。我需要在它周围放置一个命名的标签,或者松开第一个“层”。我知道这听起来很奇怪,但我不能在客户端循环它 <% @array['email'].each do |item| %> <%= item['value_1'] %> <% end %> 这是解析代码: @results = RestClient.get "http://localhost:5000/emails?token=#{g
<% @array['email'].each do |item| %>
<%= item['value_1'] %>
<% end %>
这是解析代码:
@results = RestClient.get "http://localhost:5000/emails?token=#{get_token}", :accept => :json
@array = JSON.parse(@results);
把这个翻过来:
[
{
"email": {
"created_at": "2011-03-02T12:23:59Z",
"updated_at": "2011-03-02T12:23:59Z",
"value_1": "intevisa@sss.com",
"value_2": null,
"id": 4,
"value_3": null,
"user_id": 1,
"value_4": null,
"desc": "intevisa",
"privacy": null
}
},
{
"email": {
"created_at": "2011-03-02T15:19:39Z",
"updated_at": "2011-03-02T15:19:39Z",
"value_1": "another@yahoo.com",
"value_2": null,
"id": 5,
"value_3": null,
"user_id": 1,
"value_4": null,
"desc": "Some text",
"privacy": null
}
},
{
"email": {
"created_at": "2011-03-02T15:20:17Z",
"updated_at": "2011-03-02T15:20:17Z",
"value_1": "my@email.com",
"value_2": null,
"id": 6,
"value_3": null,
"user_id": 1,
"value_4": null,
"desc": "Some text",
"privacy": null
}
},
{
"email": {
"created_at": "2011-03-02T15:21:03Z",
"updated_at": "2011-03-02T15:21:03Z",
"value_1": "An email@google.com",
"value_2": null,
"id": 7,
"value_3": null,
"user_id": 1,
"value_4": null,
"desc": "Hello world",
"privacy": null
}
}
]
为此:
[
"email": {
"created_at": "2011-03-02T12:23:59Z",
"updated_at": "2011-03-02T12:23:59Z",
"value_1": "intevisa@sss.com",
"value_2": null,
"id": 4,
"value_3": null,
"user_id": 1,
"value_4": null,
"desc": "intevisa",
"privacy": null
},
"email": {
"created_at": "2011-03-02T15:19:39Z",
"updated_at": "2011-03-02T15:19:39Z",
"value_1": "another@yahoo.com",
"value_2": null,
"id": 5,
"value_3": null,
"user_id": 1,
"value_4": null,
"desc": "Some text",
"privacy": null
},
"email": {
"created_at": "2011-03-02T15:20:17Z",
"updated_at": "2011-03-02T15:20:17Z",
"value_1": "my@email.com",
"value_2": null,
"id": 6,
"value_3": null,
"user_id": 1,
"value_4": null,
"desc": "Some text",
"privacy": null
},
"email": {
"created_at": "2011-03-02T15:21:03Z",
"updated_at": "2011-03-02T15:21:03Z",
"value_1": "An email@google.com",
"value_2": null,
"id": 7,
"value_3": null,
"user_id": 1,
"value_4": null,
"desc": "Hello world",
"privacy": null
}
]
这就是我在客户机中尝试循环的方式
<% @array['email'].each do |item| %>
<%= item['value_1'] %>
<% end %>
在配置>初始化器>wrap_parameters.rb中尝试以下操作
# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
ActionController::Base.wrap_parameters format: [:json]
# Disable root element in JSON by default.
if defined?(ActiveRecord)
ActiveRecord::Base.include_root_in_json = false
end
通过将“include_root_in_json”设置为false,可以获得所需的输出