基本上,我要做的是构建一个Json文档,它的所有片段都分布在更小的Json片段中,所有的行都包含在正确的Json结构中插入更小的json位所需的键。
我的问题开始于我对JavaScript几乎一无所知。因此,我将不得不从头开始学习JavaScript (已经在做了),所以我将尽我所能地描述这个问题以及我想要实现的目标。
问题:在每篇Pentaho / Json帖子中,我都会看到一个硬编码的JavaScript (比如Json答案,这很有帮助,但也是硬编码的字段数量)来构建一个预先形成的Json结构,我需要的是一种将动态构建的信息插入/创建到Json结构中的方法。而且它还需要嵌套结构。
所以,一开始我会批量构建所有的扁平Json结构,这可以通过Json输出步骤轻松完成,因为它输出构建的Json对象,对象本身可以动态构建,然后只是连接(我也不知道这是否可能)。在平面部分完成后,接下来是在正确的结构中连接其他对象的部分,一些只是更普通的对象,另一些是对象数组(嵌套部分)。
这就是我需要从理解这一部分的人那里得到确认的地方,即在Pentaho JavaScript中实现是可能的,或者使用Pentaho的唯一方法是构建硬编码结构。下面我将在Json示例中展示我想要的东西。
这将是平面JSON的一个示例:
{ "Apolice":{“Apolice”:{ "APO_numero_apolice":"1321635113","APO_ramo":"312","APO_data_proposta":"22-05-2018","APO_valor_desconto":0.0,"APO_valor_liquido":1550.39,"APO_cod_parceiro_negocio":“1,000”,"APO_inicio_vigencia":"22-05-2018","APO_status_apolice":"EMITIDA“},{ "Apolice":{ "APO_proposta":"3212121","APO_data_registro":"08-08-2018","APO_numero_apolice":"7891321498","APO_ramo":"515","APO_data_proposta":“22-03-7548151100”,"APO_valor_desconto":0.0,"APO_valor_liquido":2150.72,"APO_cod_parceiro_negocio":“0.0”,"APO_inicio_vigencia":"22-07-2018","APO_status_apolice":"EMITIDA","APO_produto":null,"APO_codigo_corretor":"812182","APO_fim_vigencia":"22-05-2019","APO_valor_bruto":2320.8,"APO_percentual_comissao":19,"APO_iof":空}
然后,在上述实现过程中,期望的结果将类似于:
{ "Apolice":[{“Apolice”:{ "APO_numero_apolice":"1321635113","APO_ramo":"312","APO_data_proposta":"22-05-2018","APO_valor_desconto":0.0,"APO_valor_liquido":1550.39,"APO_cod_parceiro_negocio":“1,000”,"APO_inicio_vigencia":"22-05-2018","APO_status_apolice":"EMITIDA“},"Item":{ "ITE_ano_fabricacao":"2001","ITE_modelo":“福克斯轿车吉亚2.0 MPI 16V 4P","ITE_ano_modelo":"2001","Cobertura":{ "COB_cod_cobertura":"21","COB_valor_importancia":"50000","COB_valor_premio":"415,71","COB_cobertura":"RCF-V - Danos Materiais“},{ "COB_cod_cobertura":"17","COB_valor_importancia":"16712","COB_valor_premio":"1165,96","COB_cobertura":"Colisão,Inc.e Roubo\/COB_valor_premio“},{ "Apolice":{ "APO_proposta":"3212121","APO_data_registro":"08-08-2018","APO_numero_apolice":"7891321498","APO_ramo":"515","APO_data_proposta":“22-03-7548151100”,"APO_valor_desconto":0.0,"APO_valor_liquido":2150.72,"APO_cod_parceiro_negocio":“0.0”,"APO_inicio_vigencia":"22-07-2018","APO_status_apolice":"EMITIDA","APO_produto":null,"APO_codigo_corretor":"812182","APO_fim_vigencia":"22-05-2019","APO_valor_bruto":2320.8,"APO_percentual_comissao":19,"APO_iof":空}}]}
"Item“和"Cobertura”等Json对象将作为已构建的Json对象出现,并具有在结构的正确位置插入整个对象所需的键。
因为我还在学习JavaScript,所以到目前为止我自己几乎还没有编码,但我已经知道Pentaho的JavaScript在资源上是有限的,这就是为什么我提前询问在Pentaho/Kettle中这是否可能
发布于 2018-10-05 22:10:20
不要害怕PDI中Javascript的资源限制。它使用与ES6 100%兼容的官方Rhino OpenSource项目。
https://stackoverflow.com/questions/52653561
复制相似问题