Как создать массив JSON из одного элемента с помощью Rails XML Builder? - PullRequest
2 голосов
/ 25 марта 2011

Я использую приложение Rails в качестве службы JSON API.Есть одно поле, которое может содержать одну или две строки.Ниже показано, как я создаю этот элемент JSON в файле .xml.builder, получая информацию из плоского хэша:

if hash['advertisements']
    hash['advertisements'].each do |ad|
        xml.advertisements(ad)
    end
end

Когда в хэше две строки, результирующий JSON представляет собой массив:

"advertisements": [
    "ad1.png",
    "ad2.png"
]

Но когда есть только одна строка, элемент является просто строкой:

"advertisements": "ad1.png"

Есть ли способ заставить сборщик XML создать массив JSON,даже если в хэше есть только одна строка?Также обратите внимание, что если в исходном хэше нет рекламных объявлений, не должно быть отображенного массива json.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2011

Забавно. Я понял, что приложение использует шаблон XML-компоновщика, преобразует его в хеш, а затем отображает его как json. (Я не разработал это ...) Так что я должен был войти на уровне хэша, используя

hash['advertisements'] = Array.hash['advertisements']

Вот и все!

0 голосов
/ 26 марта 2011

Я думаю, что лучший и более простой способ - использовать конструктор JSON!

gem install json

Вторая идея - использовать ваш сериализатор ORM. Таким образом, вам не придется обрабатывать все варианты использования.

...