动态名称为JSON中的键值

时间:2018-03-13 16:22:35

标签: json

我有以下JSON代码,我希望调用包含我从选项中选择的子状态机器的名称。像invoke_substatemachinename之类的东西。如果我更改选择的名称,我将无法再访问这些选项。

{
    "categoryName": "End",
    "subStateMachine": "false",
    "eventName": "Event_1",
    "properties": [],
    "selectedOptionName": "end",
    "selectOptions": [{
        "name": "return",
        "value": "0"
    }, {
        "name": "invoke",
        "value": "1"
    }, {
        "name": "end",
        "value": "-1"
    }],
    "dynamicProperties": {
        "return": [{
            "name": "SubStateMachine",
            "type": "radio",
            "options": [{
                "name": "true",
                "value": "true"
            }, {
                "name": "false",
                "value": "false"
            }]
        }, {
            "name": "Event Name",
            "type": "select",
            "options": []
        }, {
            "type": "table",
            "title": "Event Parameters"
        }],
        "invoke": [{
            "name": "SubStateMachine",
            "type": "select",
            "options": []
        }, {
            "name": "Event Name",
            "type": "select",
            "options": []
        }, {
            "type": "table",
            "title": "Event Parameters"
        }]
    }
}

我该怎么做?

1 个答案:

答案 0 :(得分:0)

我想我明白了。

"invoke": [{
        "name": "SubStateMachine",
        "type": "select",
        "options": []
    }, {
        "name": "Event Name",
        "type": "select",
        "options": []
    }, {
        "type": "table",
        "title": "Event Parameters"
    }]

这不是您的目标的良好结构。您需要将机器的名称作为对象的键,而不是具有对象列表。

您可以使用:

"invoke": {
    "SubStateMachine" : {
        "type": "select",
        "options": []
    }, "Event Name" : {
        "type": "select",
        "options": []
    }, "Empty" : {
        "type": "table",
        "title": "Event Parameters"
    }
}

如下所示,您可以通过输入以下内容来访问您机器的选项:invoke [“substateMachineName”],或调用[“Event Name”]。您还可以轻松添加要调用的属性。