基于jolt规范中的字段名称的硬编码值

时间:2018-04-23 18:40:34

标签: jolt

我正在使用jolt将一个json转换为另一个json但是我没有得到正确的输出json给定输入json

输入:

{  
  "user":{  
        "homePhone":"12345678901",
        "mobilePhone":"12346750983",
        "email":"test@example.com"
   }
}

预计Json:

{  
   "contact":[  
    {  
      "class":"PhoneClass",
      "phoneNumber":"12345678901",
      "mobile":false,
      "preferred":false
   },
   {  
      "class":"PhoneClass",
      "phoneNumber":"12346750983",
      "mobile":true,
      "preferred":true
   },
   {  
      "class":"EmailClass",
      "email":"test@example.com"
   }
]
}

在输出json中还有一些额外的字段,我还需要添加。

1 个答案:

答案 0 :(得分:0)

这有多少是动态的?如果您的示例知道您将拥有这三个输入字段并且需要三个输出对象,则此规范应该有效:

[
  {
    "operation": "shift",
    "spec": {
      "user": {
        "homePhone": "contact[0].phoneNumber",
        "mobilePhone": "contact[1].phoneNumber",
        "email": "contact[2].email"
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "contact[]": {
        "0": {
          "class": "PhoneClass",
          "mobile": false,
          "preferred": false
        },
        "1": {
          "class": "PhoneClass",
          "mobile": true,
          "preferred": true
        },
        "2": {
          "class": "EmailClass"
        }
      }
    }
  }
]