变速操作的震动规格

时间:2019-02-25 20:48:18

标签: apache-nifi jolt

我有以下JSON输入

{
  "Status": "PENDING",
  "TaskId": "0000000001",
  "EventType": "change",
  "Timestamp": "2019-01-09-15.41.57.473940T01",
  "Comment": "{\"comment\":[{\"createDate\":\"2019-01-09T15:41:57:473000-05:00\",\"type\":\"system\",\"text\":\"Assigned to: RAJ\",\"userId\":\"RAJ\",\"userName\":\"RAJA MADHIE\"},{\"createDate\":\"2019-01-09T15:45:59:150000-05:00\",\"type\":\"manual\",\"text\":\"Comments entered for 0000000001\",\"userId\":\"RAJ\",\"userName\":\"RAJA MADHIE\"},{\"createDate\":\"2019-01-09T15:49:09:586000-05:00\",\"type\":\"manual\",\"text\":\"Comments entered for 0000000001 - processed.\",\"userId\":\"RAJ\",\"userName\":\"RAJA MADHIE\"}]}"
}

,并期望输出类似于:

{
  "inputs": [
    {
      "richInput": {
        "subjectId": "0000000001",
        "body": {
          "messageSegments": [
            {
              "type": "system",
              "text": "Assigned to: RAJ"
            }
          ]
        },
        "feedElementType": "FeedItem"
      }
    },
    {
      "richInput": {
        "subjectId": "0000000001",
        "body": {
          "messageSegments": [
            {
              "type": "manual",
              "text": "Comments entered for 0000000001"
            }
          ]
        },
        "feedElementType": "FeedItem"
      }
    },
    {
      "richInput": {
        "subjectId": "0000000001",
        "body": {
          "messageSegments": [
            {
              "type": "manual",
              "text": "Comments entered for 0000000001-processed."
            }
          ]
        },
        "feedElementType": "FeedItem"
      }
    }
  ]
}

我已经尝试使用几个JOLT规范来对此进行转换,但是没有运气...任何建议或建议都非常感谢。谢谢!

1 个答案:

答案 0 :(得分:0)

您需要使注释成为正确的JSON结构,它将显示如下内容。

{
 "Status": "PENDING",
 "TaskId": "0000000001",
 "EventType": "change",
 "Timestamp": "2019-01-09-15.41.57.473940T01",
 "Comment": {
   "comment": [
    {
      "createDate": "2019-01-09T15:41:57:473000-05:00",
      "type": "system",
      "text": "Assigned to: RAJ",
      "userId": "RAJ",
      "userName": "RAJA MADHIE"
    },
    {
      "createDate": "2019-01-09T15:45:59:150000-05:00",
      "type": "manual",
      "text": "Comments entered for 0000000001",
      "userId": "RAJ",
      "userName": "RAJA MADHIE"
    },
    {
      "createDate": "2019-01-09T15:49:09:586000-05:00",
      "type": "manual",
      "text": "Comments entered for 0000000001 - processed.",
      "userId": "RAJ",
      "userName": "RAJA MADHIE"
     }
   ]
 }
}

要对此进行转换的规范文件:

[
{
"operation": "shift",
"spec": {
  "Comment": {
    "comment": {
      "*": {
        "@(3,TaskId)": "inputs[&1].richInput.subjectId",
        "type": "inputs[&1].richInput.body.messageSegments[0].type",
        "text": "inputs[&1].richInput.body.messageSegments[0].text",
        "#FeedItem": "inputs[&1].richInput.feedElementType"
      }
    }
  }
}
},
{
"operation": "shift",
"spec": {
  "inputs": {
    "*": {
        "richInput": {
          "subjectId": "inputs[&2].richInput.subjectId",
          "body": "inputs[&2].richInput.body",
          "feedElementType": "inputs[&2].richInput.feedElementType"
         }
       }
     }
   }
  }
]