JSON, созданный с помощью .to_json (из коллекции) в модели Rails, не читаемый jquery - PullRequest
1 голос
/ 18 января 2012

Я получил результаты запроса в модели.Затем я сразу добавил .to_json и предположил, что получу правильный объект JSON.Но JQuery не смог разобрать json

def self.get_all_specials(year)
  data_array=AttributeCalendarAnnual.find(:all, :conditions=>["created_at between ? and ?",Date.civil(Date.today.year), Date.civil(Date.today.next_year.year)], :order=>["created_at asc"])
  return data_array.to_json
end

Но результат, который я получаю, не является действительным JSON, кажется.

[{"created_at":"2012-01-17T17:38:27Z","id":1,"in_market_end_date":"2012-01-31T23:59:59Z","in_market_start_date":"2012-01-18T00:00:00Z","initiative_id":1,"is_mail_count_selected":true,"is_mailer_selected":true,"is_market_selected":true,"is_offer_selected":true,"mail_count":1,"mailer_start_date":"2012-01-25T00:00:00Z","offer_selection_end_date":"2012-01-12T23:59:59Z","offer_selection_start_date":"2012-01-09T00:00:00Z","updated_at":"2012-01-17T17:38:27Z"},{"created_at":"2012-01-17T20:21:37Z","id":2,"in_market_end_date":"2012-01-28T23:59:59Z","in_market_start_date":"2012-01-24T00:00:00Z","initiative_id":3,"is_mail_count_selected":true,"is_mailer_selected":true,"is_market_selected":true,"is_offer_selected":true,"mail_count":5,"mailer_start_date":"2012-01-30T00:00:00Z","offer_selection_end_date":"2012-01-21T23:59:59Z","offer_selection_start_date":"2012-01-09T00:00:00Z","updated_at":"2012-01-17T20:21:37Z"}]

1 Ответ

1 голос
/ 18 января 2012

если вы просто выводите экранированный объект на свою страницу и надеетесь, что JS его проанализирует, это не сработает, потому что он будет интерпретирован как строка Вместо этого попробуйте передать строку в функцию, подобную этой:

function parseJSON(txt, escape) {
    if (escape === true) {
        txt = unescape(txt);
    }
    return new Function("return " + txt)();
}

var result = parseJSON(someString);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...