gpt4 book ai didi

javascript - 解析 JSON 以在 Javascript 中创建对象

转载 作者:行者123 更新时间:2023-11-30 00:10:32 25 4
gpt4 key购买 nike

也许这已经在某个地方讨论过,我自己找不到如何解决我的问题的确切答案:

我有一个 mutliniear «story»,它在每个片段中执行代码。我写了一个状态机,每当另一个段调用那个段时,它就会启动一个新段。每个段都有一个 onEnter-、一个 onCheck 和一个 onLeave 函数。顾名思义,onEnter 在调用段时执行,onCheck 检查一些输入直到满足某些条件(如果是,它们将导致另一个段)并且 onLeave 在调用下一个段之前执行。

目前我只是写了一个类似这样的 javascript 对象:

var flow = {
seg1: {
onEnter: function() {
this.say('Seg1');
},
onCheck: function(data) {
if (data.condition) {
machine.callNextSeg('seg2');
} else if (data.condition2) {
machine.callNextSeg('seg3');
}
},
onLeave: function() {
}
},
seg2: {
onEnter: function() {
this.say('Seg2');
},
onGestureCheck: function(data) {
},
onLeave: function() {
}
},
seg3: {
onEnter: function() {
this.say('Seg3');
},
onGestureCheck: function(data) {

},
onLeave: function() {
}
}
};

为了便于理解,示例稍微简化了一些,但是里面的代码会稍微复杂一些。

我宁愿有一个 JSON 文件,它被加载、解析并创建这样一个对象。 JSON File 应该使用更简单、更抽象的语法来编写。特别是为了让它更快。

我想象的是这样的:

{
"seg1": {
"onEnter": {
"say": 'Seg1'
},
"onCheck": {
"condition1": "seg2",
"condition2": "seg3"
},
"onLeave": {

}
},
"seg2": {
"onEnter": {
"say": 'Seg2'
},
"onCheck": {

},
"onLeave": {

}
}
}

条件是 bool 值,如果为真,则应调用所描述的段。

解析 json、创建对象并在其中为每个 onEnter、onCheck 和 onLeave 创建函数是否容易?还要写必要的 if 子句?

感谢您提供正确方向的提示。

干杯

J.

最佳答案

var flow = {...} 是一个对象文字,实际上最适合您需要做的事情,但我确实理解希望将所有这些“定义”在一个JSON 文件。那里的问题变成了这样一个事实,即处理你的 JSON 文件的应用程序必须理解/是 Javascript(这违背了将 JSON 作为语言不可知论者的想法 - 尽管它的名字)。这可能是你需要的: JavaScript Function Serialization

另请在此处查看已投票的答案: What is the correct way to "serialize" functions in javascript for later use

关于javascript - 解析 JSON 以在 Javascript 中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36682032/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com