是否可以定义一个函数并将其反序列化到/从 json?例如,如果我在文件中读取:
foo.json:
{
name: 'foo',
eventListener: (event){
//Do stuff with event in here
}
}
然后在 dart 代码中将 json 读入地图并分配属性:
myObject.name = fooMap['name'];
myObject.onChange.listen(fooMap['eventListener']);
更新
感谢贾斯汀的澄清,我正在尝试使用数据驱动设计编写一个简单的基于文本的游戏,这样其他用户就可以轻松地为其编写自己的添加和模组。
我希望我的程序能够读取“流派包”json文件,例如:
幻想.json:
{
name: 'Fantasy',
description: 'Traditional fantasy concepts, knights, dragons, magic ... etc.',
classes: [
{
name: 'Warrior',
description: 'A melee fighter that wears heavy armor',
passiveSkill: {
name: 'Inner rage',
description: 'When health drops below 10%, physical damage is increased by 100%.',
impl: {
event: 'hpChange',
fn: (event){
if(event.hp < (event.hpMax / 10)){
event.character.physicalAttack += event.character.physicalAttack;
}
}
}
}
},
// many more classes defined here...
]
}
因此,当 dart 文件解析流派 json 文件时,它会将事件侦听器函数连接到字符“hpChange”事件。但是从您的评论看来,我将使用一个字符串来编码我的事件侦听器逻辑,并有一个特殊的事件处理程序创建函数来解析该字符串并生成一系列嵌套函数来实现效果......也许。