我正在寻找一种适合描述树状应用程序数据迁移的语言。
我们有一个应用程序将其数据保存为“对象”树。如果你试图将它表达为JSON,你可以得到类似的东西:
{
"ROOT_OBJECT": {
"@parameter1": 42,
"@parameter2": "asdf",
"CHILD_OBJECT": {
"@parameter1": {
"@subparameter1": 1
},
"@parameter2": [ "one", "two" ],
"GRANDCHILD_OBJECT": {
"@parameter1": 42
}
}
}
}
数据结构随着时间的推移而发展。新的应用程序版本可能需要添加一些新参数,删除一些旧参数,将参数从一个对象移动到另一个对象,合并或拆分对象等。
这样的数据迁移可以用像Java或JavaScript这样的命令式语言编写(它或多或少都是现在的方式),但我们的目的是转向声明性的。
目前我们正在开发一个使用XSLT的实现:它将树转换为DOM树,应用XSL转换,然后将结果转换回原始树格式。
我想知道是否有另一种方法可以进行此类数据转换。理想情况下,候选语言已经有了Java和JavaScript的实现,或至少在JavaScript中。
答案 0 :(得分:0)
TreeOps可视工具(https://github.com/treeops/treeops)转换树(JSON / XML / CSV)并生成Java代码,但是尚不支持JavaScript。 如果Java在后端可用,则可以在那里运行它。
TreeOps定义了一组数据树转换,以简化典型的数据操作: