Проблемы разбора сгенерированного JSON - PullRequest
0 голосов
/ 02 марта 2011

Я получил объект JSON, который я сгенерировал через Rails 3 (через мой API).Мне нужно либо поместить именованный окружающий тег вокруг него, либо потерять первый «слой».Я знаю, это звучит очень странно, но я не могу зациклить его в клиенте.

Это код синтаксического анализа:

@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
        }
    }
]

this:

[

        "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 %>

1 Ответ

1 голос
/ 15 июля 2011

Попробуйте следующее в config> initializers> 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, то вы получите желаемый результат

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...