Ответ 1
Как и в jQuery 1.4.1, вы можете сделать это изначально
jQuery.parseJSON
Смотрите документация jQuery.
У меня есть строка в моем db, которую я хочу вытащить на свою страницу и преобразовать в объект JavaScript.
[
{id: 1,title: "Long Event",
start: new Date(2009, 5, 6, 14, 0),end: new Date(2009, 5, 11)},
{id: 2,title: "Repeating Event",
start: new Date(2009, 5, 2)},
{id: 3,title: "Meeting",
start: new Date(2009, 5, 20, 9, 0)},
{id: 4,title: "Click for Facebook",
start: new Date(2009, 5, 27, 16),end: new Date(2009, 5, 29),
url: "http://facebook.com/"}
]
Как это сделать с помощью jQuery?
Как и в jQuery 1.4.1, вы можете сделать это изначально
jQuery.parseJSON
Смотрите документация jQuery.
"Официальный" json2.js script включает в себя 2 метода: один, который будет безопасно анализировать любую строку JSON для объекта (JSON.parse) и тот, который преобразует объект в строку JSON (JSON.stringify)
script можно найти здесь.
В моем сообщении выше я предложил eval(), но на самом деле есть несколько лучший способ оценить JSON (если вы не хотите использовать json2.js script):
var obj = (new Function("return " + json))();
используя json2.js script:
var obj = JSON.parse(json);
как насчет eval()?
var obj = eval (jsonString);
Взгляните на JQuery-json плагин
var thing = {plugin: 'jquery-json', version: 1.3};
var encoded = $.toJSON(thing); //'{"plugin": "jquery-json", "version": 1.3}'
var name = $.evalJSON(encoded).plugin; //"jquery-json"
var version = $.evalJSON(encoded).version; // 1.3
Вы просмотрели плагин jquery-json?
использовать
jQuery.getJSON(url, data, callback)
или передать "json" как type
parameter:
jQuery.get( url, data, callback, type )
то же самое относится к:
jQuery.post( url, data, callback, type )
* все, если вы извлекаете "строку" из запроса ajax
Пока вы можете использовать команду eval, сначала вам нужно проверить ее на предмет безопасности. Я использую:
var data = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.
test(source.replace(/"(\\.|[^"\\])*"/g, '')))
&& eval('(' + source + ')');
Это должно работать (оно немного отрегулировано от оригинала). Ключевым моментом является то, что строка JSON проверяется для предотвращения проскакивания функций и другого исполняемого кода. (Первое регулярное выражение - важный бит).
Тем не менее, плагин JSON очень хорош.