Проблема шаблона jQuery с данными JSON

Я использую шаблон JQuery, который принимает данные JSON для создания таблицы. Этот код работает нормально. Но когда я пытаюсь создать функцию вокруг этого кода и передать ей данные JSON, которые я получаю из запроса AJAX, он показывает значения в консоли, но не в таблице. Рабочий код с фиктивными данными:

var json = [{"class":12,"marks":"500","marks1":"200","marks2":"300"},{"class":11,"marks":"200","marks1":"300","marks2":"400"}]

$.template('kList','<tr title="${class}"><td>${marks}</td><td>${marks1}</td><td>${marks2}</td></tr>');  

for(var i=0; i<json.length; i++){   
    $.tmpl('kList',json[i]).appendTo("#table1")
}

Вот код, где я деформирую верхний код в функции и передаю данные JSON в качестве параметра, который показывает значения в консоли, когда я печатаю их с console.log(json) но не заполняя стол. Параметр JSON имеет те же данные JSON, что и в приведенном выше коде.

function dataTable(json){
    console.log(json); // here json values are appearing in the console
    $.template('kList','<tr title="${class}"><td>${marks}</td><td>${marks1}</td><td>${marks2}</td></tr>');  

    for(var i=0; i<json.length; i++){   
        $.tmpl('kList',json[i]).appendTo("#table1")
    }
}

Пожалуйста, помогите мне, потому что я не знаю, что не так в этом коде. Заранее спасибо.

1 ответ

Решение

Ваш json Параметр является строкой. Вы должны преобразовать его в объект, используя $.parseJSON(JSON).

Посмотрите на это для детализации конверсии.

Другие вопросы по тегам