関数を含む json 文字列を、有効な関数宣言を持つ json オブジェクトに変換する例を次に示します。
var jsonstring = "{\"schema\": {\"title\": \"User Feedback\", \"description\":\"so\", \"type\":\"object\", \ "properties\":{\"name\":{\"type\":\"string\"}}}," + "\"options\":{ \"form\":{\"attributes\" :{}, \"buttons\":{ \"submit\":{ \"title\":\"It\", \"click\":\"function(){alert('hello');} \" }}} }}";
var jsonData = JSON.parse(jsonstring);
function Iterate(data)
{
jQuery.each(data, function (index, value) {
if (typeof value == 'object') {
Iterate(value);
}
else {
if (value.indexOf("function()") > -1)
data[index] = eval("(" + value + ")");
}
});
};
Iterate(jsonData);
この場合、jsonData.options.form.buttons.submit.click();