JavaScript对象,我都存储在数据属性的JSON字符串。解析JSON字符串与函数名
{
"active": true,
"icons": {
"activeHeader": "ui-icon-alert"
},
"animate": {
"duration": 1000,
"always": dMethod
}
}
而且我有哪些命名dMethod功能:
function dMethod() {
alert("DONE");
}
当我尝试通过JSON.parse
我得到一个错误说无效字符来解析字符串。我检查和dMethod是定义何时解析方法运行,如果我删除,“总是”:dMethod部分,然后解析器工作正常。 我不能在dMethod周围使用引号,因为那样这个类型将是字符串类型而不是对象函数。
任何帮助,将不胜感激。
谢谢,
Péter
编辑:
谢谢你的所有答案。我做了一些澄清,所以也许你会更好地理解问题。我做一个非常简单的JS库,使jQueryUI的无碍:
var juiObjects = ["accordion", "autocomplete", "button", "datepicker", "dialog", "menu", "progressbar", "slider", "spinner", "tabs", "tooltip"];
$(document).ready(function() {
for (var i = 0; i < juiObjects.length; i++) {
var attributeName = "data-" + juiObjects[i];
$("["+ attributeName + "]").each(function() {
var optionsValue = $(this).attr(attributeName);
var options = JSON.parse(optionsValue);
$(this)[juiObjects[i]](options);
});
}
});
我不得不JSON.parse和eval之间选择。但我认为eval不会是那么好的选择。尽量保持“图书馆”尽可能简单。但它看起来像我已经备件的小部件的代码。
感谢。我做了som的进步,但卡住了一些JavaScript魔术。我做了另一个问题(尽量不要垃圾邮件这个)如果你intrested:http://stackoverflow.com/questions/18189367/javascript-deep-search-and-change-in-object –