我正在尝试编写一个规范来使用jolt转换进行以下转换。我只对更改json中键的名称感兴趣,值应该保持不变。帮帮我。
输入Json:
[
{
"list1": [
{
"id": "CPP1600000009846",
"list2": [
{
"amount": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"code": "CONAMP"
},
{
"amount": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"code": "PCCPRI"
},
{
"amount": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"code": "PCCPCI"
},
{
"amount": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"code": "PCCPII"
}
]
},
{
"id": "CPP1600000009846",
"list2": [
{
"amount": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"code": "CONEIT"
},
{
"amount": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"code": "CONCRT"
},
{
"amount": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"code": "CONNCT"
}
]
}
]
}
]
预期输出:
[
{
"listA": [
{
"Num": "CPP1600000009846",
"listB": [
{
"rate": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"covg_code": "CONAMP"
},
{
"rate": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"covg_code": "PCCPRI"
},
{
"rate": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"covg_code": "PCCPCI"
},
{
"rate": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"covg_code": "PCCPII"
}
]
},
{
"Num": "CPP1600000009846",
"listB": [
{
"rate": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"covg_code": "CONEIT"
},
{
"rate": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"covg_code": "CONCRT"
},
{
"rate": {
"formattedPrimeAmount": "0.00",
"primeAmount": "0.00"
},
"covg_code": "CONNCT"
}
]
}
]
}
]
使用以下规格
[
{
"operation": "shift",
"spec": {
"list1" : {
"*": {
"id" : "listA[&1].Num",
"list2" : {
"*": {
"amount" : "listA[&1].listB[&3].rate",
"code" : "listA[&1].listB[&3].covg_code"
}
}
}
}
}
}
]
使用以下代码运行此规范
List<Object> chainrSpecJSON = JsonUtils.filepathToList( "D:\\path\\to\\spec.json" );
Chainr chainr = Chainr.fromSpec( chainrSpecJSON );
List<Object> inputJSONList = JsonUtils.filepathToList( "D:\\path\\to\\input.json" );
List<Object> outputList = new ArrayList<Object>();
for(Object singleObj : inputJSONList){
Object transformedOutput = chainr.transform( singleObj );
outputList.add(transformedOutput);
}
抱歉延迟重播,请使用以下规格
[
{
"operation": "shift",
"spec": {
"list1": {
"*": {
"id": "listA[&1].Num",
"list2": {
"*": {
"code": "listA[&3].listB[&1].covg_code",
"amount": {
"formattedPrimeAmount": "listA[&4].listB[&2].rate.formattedPrimeAmount",
"primeAmount": "listA[&4].listB[&2].rate.primeAmount"
}
}
}
}
}
}
}
]
我有json,其中包括多个产品,每个产品有多个不同的细节。使用jolt,我只需要输入json中的几个字段,遵循与输入json几乎相同的结构。我成功地迭代了产品,但是当我试图迭代每个产品变体时,我没有得到想要的输出。 输入. json 这里是Spec.json 我想要的预期输出。 我现在得到的实际输出。
我只想扁平化嵌套JSON的属性,但仍然适用于输入数组中的所有对象 很难将这三个字段放在一个规范中(类型字段、geo字段、properties字段)。我编写了规范来单独完成每一个操作,但是当我将这些规范组合在一个对象中使用时,它会产生错误的输出--对象数组真的把它搞砸了。 期望输出:
如何使用jolt转换将平面JSON转换为嵌套JSON?我对JSON和jolt是新手。 输入: 预期输出: 编辑:我想在< code>SubFunds中添加一个新字段,但是新字段不在JSON文件中,它是计算字段,我可以按原样添加示例吗 并重命名字段:
我有一个JSON如下所示: 为什么在输出中看不到Level1、Level2?请有人帮忙,我想看看在输出和输入太相似了。
我试图根据第二个嵌套数组中的值的数量将嵌套数组转换为对象。我似乎无法获取值字段的数量并将其用作规范中的键。现在这是我的输入JSON文件: 这是我想要的JSON输出: 这是我目前的规格 有人有类似的情况吗?
我需要使用JOLT转换一个JSON。我是雷震改造的新手。以下是详细内容。我们正在尝试使用NiFi中的Jolt转换来转换jsons。 这是输入 这是我写的作业(更新感谢哈里克里希纳!) 我期待下面的输出。 我无法使循环工作。这是我从我写的作业中得到的输出。