You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kogito DMN如何创建字符串到对象数组的映射数据类型?

这种字符串到结构体数组的映射结构完全受支持

你描述的是以字符串为键、结构体数组为值的字典(映射/哈希表),几乎所有主流编程语言都原生支持这种嵌套数据结构,核心思路就是用字符串作为字典的键,把结构体数组作为对应的值,键的数量可以动态增减,完全符合你的需求。

下面是几种常见编程语言的实现示例:

Python 实现

可以用自定义类模拟结构体,结合字典和列表实现:

class MyStruct:
    def __init__(self, objkey1, objkey2, objkey3):
        self.objkey1 = objkey1
        self.objkey2 = objkey2
        self.objkey3 = objkey3

# 构建目标映射结构
data_map = {
    "key1": [MyStruct("xyz", "abc", "123")],
    "key2": [
        MyStruct("XYZ", "ABC", "!@#"),
        MyStruct("hello", "bye", "cya"),
        MyStruct("xyz", "abc", "123")
    ],
    "key3": [
        MyStruct("foo", "bar", "789"),
        MyStruct("bingo", "bazinga", "12345")
    ]
}

如果不需要严格的类结构,也可以直接用字典模拟结构体:

data_map = {
    "key1": [{"objkey1": "xyz", "objkey2": "abc", "objkey3": "123"}],
    "key2": [
        {"objkey1": "XYZ", "objkey2": "ABC", "objkey3": "!@#"},
        {"objkey1": "hello", "objkey2": "bye", "objkey3": "cya"},
        {"objkey1": "xyz", "objkey2": "abc", "objkey3": "123"}
    ]
}

Java 实现

使用HashMap<String, List<MyStruct>>来实现:

// 定义结构体类
class MyStruct {
    private String objkey1;
    private String objkey2;
    private String objkey3;

    public MyStruct(String objkey1, String objkey2, String objkey3) {
        this.objkey1 = objkey1;
        this.objkey2 = objkey2;
        this.objkey3 = objkey3;
    }
    // 可按需添加getter/setter方法
}

public class Main {
    public static void main(String[] args) {
        java.util.HashMap<String, java.util.List<MyStruct>> dataMap = new java.util.HashMap<>();
        
        // 给key1添加结构体数组
        java.util.List<MyStruct> key1List = new java.util.ArrayList<>();
        key1List.add(new MyStruct("xyz", "abc", "123"));
        dataMap.put("key1", key1List);
        
        // 给key2添加结构体数组
        java.util.List<MyStruct> key2List = new java.util.ArrayList<>();
        key2List.add(new MyStruct("XYZ", "ABC", "!@#"));
        key2List.add(new MyStruct("hello", "bye", "cya"));
        key2List.add(new MyStruct("xyz", "abc", "123"));
        dataMap.put("key2", key2List);
    }
}

Go 语言实现

直接使用map[string][]MyStruct类型:

package main

import "fmt"

// 定义结构体
type MyStruct struct {
    Objkey1 string
    Objkey2 string
    Objkey3 string
}

func main() {
    dataMap := map[string][]MyStruct{
        "key1": {
            {"xyz", "abc", "123"},
        },
        "key2": {
            {"XYZ", "ABC", "!@#"},
            {"hello", "bye", "cya"},
            {"xyz", "abc", "123"},
        },
        "key3": {
            {"foo", "bar", "789"},
            {"bingo", "bazinga", "12345"},
        },
    }

    fmt.Println(dataMap)
}

TypeScript 实现

通过接口定义结构体,结合Record<string, MyStruct[]>类型实现:

// 定义结构体接口
interface MyStruct {
    objkey1: string;
    objkey2: string;
    objkey3: string;
}

// 构建映射结构
const dataMap: Record<string, MyStruct[]> = {
    "key1": [
        { objkey1: "xyz", objkey2: "abc", objkey3: "123" }
    ],
    "key2": [
        { objkey1: "XYZ", objkey2: "ABC", objkey3: "!@#" },
        { objkey1: "hello", objkey2: "bye", objkey3: "cya" },
        { objkey1: "xyz", objkey2: "abc", objkey3: "123" }
    ],
    "key3": [
        { objkey1: "foo", objkey2: "bar", objkey3: "789" },
        { objkey1: "bingo", objkey2: "bazinga", objkey3: "12345" }
    ]
};

内容的提问来源于stack exchange,提问作者sammy7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 12:00:58