Анализировать переменную как JSON w/ jQuery

Я пытаюсь заполнить форму списком вопросов и переключателями. Когда страница загружена, у меня есть переменная, содержащая ответы, которые у них есть, в виде строки в формате JSON:

var json = '{ "answers" : [{"84" : "Y" },{"85" : "Y" },{"86" : "Y" },{"87" : "Y" },{"88" : "Y" },{"89" : "N" },{"90" : "N" },{"91" : "N" },{"92" : "Y" },{"93" : "N" },{"94" : "Y" },{"95" : "N" },{"96" : "N" },{"97" : "Y" }]}';

Мне нужно перебрать ответы и найти переключатель с идентификатором, совпадающим с номером IE id="84", и установить его значение на основе соответствующего значения (Y).

Похоже, getJSON - это то, на что мне следует обратить внимание, но мне не нужно совершать вызов, чтобы получить данные, так как они у меня уже есть.

3 ответа

Решение

Понял, удалил кавычки, как упомянуто выше, добавил класс, который соответствует идентификатору, чтобы я мог выбрать все элементы для данного идентификатора:

 for(var i =0; i < json.answers.length; i++) { 
           var item = json.answers[i]; 
           for (var j in item) {
              $('.' + j).each(function(){
                 if ($(this).attr("value") == item[j]) $(this).attr("checked", true);
              });
     }
 }

Я уверен, что, возможно, есть более элегантное решение, но пока оно работает очень хорошо.

Вы можете просто удалить кавычки снаружи, и это будет уже в правильном формате.

var json = {
                "answers" : [{"84" : "Y" },
                 {"85" : "Y" },
                 {"86" : "Y" },
                 {"87" : "Y" },
                 {"88" : "Y" },
                 {"89" : "N" },
                 {"90" : "N" },
                 {"91" : "N" },
                 {"92" : "Y" },
                 {"93" : "N" },
                 {"94" : "Y" },
                 {"95" : "N" },
                 {"96" : "N" },
                 {"97" : "Y" }
            ]
        };

В отличие от некоторых других форматов, JSON основан на реальном языке, что означает, что вы можете использовать формат JSON в обычном кодировании. Это довольно легко написать JSON.

Обычно вы просто используете каждое утверждение, как показано ниже:

 jQuery.each(json.answers, function(i, val) {
   $("#" + i).val() = val;
 });
Другие вопросы по тегам