标签: jolt

如何使用Jolt转换数组?

在尝试转换这样的东西时,我为变换后的对象获取了一个空值:

{   
  "employees": [
    { "f_name" : "tom", "l_name" : "smith" },
    { "f_name" : "don", "l_name" : "jones" }
  ]
}
Run Code Online (Sandbox Code Playgroud)

对此:

{
  "employees": [
    { "firstName" : "tom", "lastName" : "smith" },
    { "firstName" : "don", "lastName" : "jones" }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是我使用的规范:

[
  {
    "operation" : "shift",
    "spec" : {
      "employees" : {
        "f_name" : "firstName"
        "l_name" : "lastName"
      }
   }
 ]
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

List<Object> chainrSpecJSON = JsonUtils.classpathToList("path/spec.json");
Chainr chainr = Chainr.fromSpec(chainrSpecJSON);
Object inputJSON = JsonUtils.classpathToObject("path/input.json");

Object transformed …
Run Code Online (Sandbox Code Playgroud)

java json jolt

7
推荐指数
1
解决办法
8978
查看次数

Jolt 条件规范

我想要一个条件转换,如果输入中特定字段的值与我的条件匹配,我需要在输出中添加一个属性。下面是我需要的输入和输出。


输入

{
    "attr": [
        {
            "name": "first",
            "validations": [
                {
                    "type": "Required",
                    "value": true
                }
            ]
        },
        {
            "name": "last",
            "validations": [
                {
                    "type": "lenght",
                    "value": "10"
                }
            ]
        },
        {
            "name": "email",
            "validations": [
                {
                    "type": "min",
                    "value": 10
                }
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

输出

{
    "attr": [
        {
            "name": "first",
            "validations": [
                {
                    "type": "Required",
                    "value": true
                }
            ]
        },
        {
            "name": "last",
            "validations": [
                {
                    "type": "lenght",
                    "value": "10"
                }
            ]
        },
        {
            "name": "email",
            "validations": …
Run Code Online (Sandbox Code Playgroud)

java json jolt

6
推荐指数
1
解决办法
7241
查看次数

Jolt 变换 json - 如何添加默认字段

我有以下输入JSON

{
  "id": "2ef8a2ee-054f-4b43-956a-8aa4f51a41d5",
  "type": "VOICE",
  "tags": [
    {
      "id": "some id 1",
      "description": "some description 1"
    },
    {
      "id": "some id 2",
      "description": "some description 2"
    }
  ],
  "transcription": {
    "key1": "val1",
    "key2": "val2"
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,输出JSON应该类似,并且仅添加默认值:

{
  "id": "2ef8a2ee-054f-4b43-956a-8aa4f51a41d5",
  "created": "2019-06-18T18:12:37",
  "firstName": "Khusan",
  "lastName": "Sharipov",
  "status": "OPEN"
  "type": "VOICE",
  "tags": [
    {
      "id": "some id 1",
      "description": "some description 1"
    },
    {
      "id": "some id 2",
      "description": "some description 2"
    }
  ],
  "transcription": { …
Run Code Online (Sandbox Code Playgroud)

json transformation default-value jolt apache-nifi

6
推荐指数
1
解决办法
8320
查看次数

是否可以使用 JOLT 连接 JSON 属性的值?

我想知道是否有任何方法可以使用 JOLT 转换将 JSON 属性的值连接成一个新属性。

例如,我有以下 JSON:

{
  "name": "Mary",
  "Year Joined": "2017",
  "Gender": "Female"
}
Run Code Online (Sandbox Code Playgroud)

我希望它变成这样:

{
  "new": "Mary_2017_Female"
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用 JOLT 来做到这一点,或者是否有其他替代方法可以做到这一点?

json transformation jolt apache-nifi

5
推荐指数
1
解决办法
4934
查看次数

使用 Jolt 从第一个数组元素中提取值

我有以下 JSON 文档:

{
    "pbid": 123,
    "pid": 0,
    "time": 1483551745000,
    "timestamp": "2017-01-04 17:42:25",
    "creationTime": 1483551789000,
    "creationTimestamp": "2017-01-04 17:43:09",
    "name": "myname",
    "triggeredComponents": [
        {
            "device": {
                "did": 20,
                "ip": "127.0.0.1",
                "firstSeen": 1427474095000,
                "lastSeen": 1483545006000,
                "typename": "dnsserver"
            },
            "time": 1483551789000
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

使用 Jolt 我需要将其转换为以下内容:

{
  "event_id" : 123,                ( pbid )
  "name" : "myname",               ( name )
  "did": "20",                     ( triggeredComponents[0].device.did )
  "first_seen": 1427474095000,     ( triggeredComponents[0].device.firstSeen )
  "last_seen": 1483545006000       ( triggeredComponents[0].device.lastSeen )
}
Run Code Online (Sandbox Code Playgroud)

我对基本的转变(event_idname)没问题,但我不知道如何从数组中提取。这是我目前的尝试(我也尝试过其他一些方法):

[
  { …
Run Code Online (Sandbox Code Playgroud)

json jolt

4
推荐指数
1
解决办法
5098
查看次数

Apache Nifi 1.7.1 使用分隔符压平 Json

我正在使用带有分隔符的 Flatten Json 处理器_,到目前为止,它可以很好地展平嵌套记录。但我也注意到它会干扰已经有“_”的键。例如:

{
"first_name": "myfirstname",
"last_name":  "mylastname",
"address": {
            "billing": "mybilling",
            "shipping": "myshipping"
           }
}
Run Code Online (Sandbox Code Playgroud)

展平为:

{
"[\"first_name\"]": "myfirstname",
"[\"last_name\"]":  "mylastname",
"address_billing": "mybilling",
"address_shipping": "myshipping"
 }
Run Code Online (Sandbox Code Playgroud)

同时,“ ”记录按预期被展平,具有字符address的键first_name和也受到干扰。有什么办法可以绕过这个吗?(也许是一种逃避非记录类型的方法?)last_name_

json jolt apache-nifi

4
推荐指数
1
解决办法
2549
查看次数

有 JOLT 文档吗?&amp;、@等运算符的含义是什么?(NiFi、JoltTransformJSON)

是的,有!我提出这个问题是为了分享我的知识,问答风格,因为我自己很难找到它:)

\n

感谢/sf/answers/4747503771/(Barbaros \xc3\x96zhan,请参阅评论)为我指明了正确的方向

\n

json jolt apache-nifi

4
推荐指数
1
解决办法
7593
查看次数

使用 JOLT 将 JSON 字符串数组转换为对象数组

对于学生项目,我必须提高数据质量。第一步是请求一个 API。其次,我们必须编辑json结构。

这是来自 API 的响应:

{
    "lists": [
        [
            0,
            451,
            "test",
            "953"
        ],
        [
            2,
            1010,
            "hello",
            "610"
        ]
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在使用 jolt 我想要这样的结果:

{
  "lists": [
    {
      "id": 0,
      "clientId": 451,
      "name": "test",
      "custom_value": "953"
    },
    {
      "id": 2,
      "clientId": 1010,
      "name": "hello",
      "custom_value": "610"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

目前,我可以访问数据值,但我不知道如何将其分成带有对象的数组。

我的“代码”:

[
  {
    "operation": "shift",
    "spec": {
      "lists": {
        "*": {
          "*": {
            "*": {
              "$0": "lists"
            }
          }
        }
      }
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

我错在哪里,如何正确编辑原始数组的结构?

java jolt

3
推荐指数
1
解决办法
2543
查看次数

检查 jolt 中是否为 null 或为空,并输入输入 JSON 中存在的另一个值

这是我的输入 JSON:

{
    "AddressBilling": {
        "FirstName": "Some Name",
        "LastName": "Some Name",
        "Address":"some address"
     }
    "AddressShipping": {
        "FirstName": "",
        "LastName": "",
        "Address":""
     }
}
Run Code Online (Sandbox Code Playgroud)

我想保留“AddressBilling”和“AddressShipping”,但名称不同,即“ payment_address”和“shipping_address”,我为此编写了 payment_address 部分的规范文件

{
    "operation": "shift",
    "spec": {
      "AddressBilling": {
        "FirstName": "payment_address.firstname",
        "LastName": "payment_address.lastname",
        "Address": "payment_address.address"
      },
       "AddressShipping": {
        "FirstName": "shipping_address.firstname",
        "LastName": "shipping_address.lastname"

      }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想要的是检查“AddressShipping”对象中的“Address”键是否为空,然后我想将“AddressBilling”的“Address”复制到“shipping_address”的“Address”。

jolt

3
推荐指数
1
解决办法
8475
查看次数

Jolt Transformation - 将所有按键都小写?

我有以下 JSON:-

{
  "ROWNUM": "328938",
  "SOURCE_NAME": "I2323",
  "ID": "333333",
  "FIRST_NAME": "A121221",
  "KNOWN_AS": "G1223321",
  "LAST_NAME": "sadsadsd",
  "PLACE_OF_BIRTH": "Indsadsadsaddsaia",
  "DATE_OF_BIRTH": "sadsaddsa",
  "UPRN": "sadsadsad",
  "POST_CODE": "asdsadsda",
  "POST_TOWN": "GLASGOW",
  "ESTIMATED_DOB": "N",
  "LAST_UPDATED": "2019-02-11T13:57:05.264Z",
  "cluster_id": 3020,
  "aliases": [
    {
      "_id": {
        "timestamp": 1550152767,
        "machineIdentifier": 6505561,
        "processIdentifier": 59,
        "counter": 2775622,
        "time": 1550152767000,
        "timeSecond": 1550152767,
        "date": 1550152767000
      },
      "ROWNUM": "328938",
      "SOURCE_NAME": "I2323",
      "ID": "333333",
      "FIRST_NAME": "A121221",
      "KNOWN_AS": "G1223321",
      "LAST_NAME": "sadsadsd",
      "PLACE_OF_BIRTH": "Indsadsadsaddsaia",
      "DATE_OF_BIRTH": "sadsaddsa",
      "UPRN": "sadsadsad",
      "POST_CODE": "asdsadsda",
      "POST_TOWN": "GLASGOW",
      "ESTIMATED_DOB": "N",
      "LAST_UPDATED": "2019-02-11T13:57:05.264Z",
      "cluster_id": 3020,
      "score": …
Run Code Online (Sandbox Code Playgroud)

json transformation transform jolt

3
推荐指数
1
解决办法
4323
查看次数

标签 统计

jolt ×10

json ×8

apache-nifi ×4

java ×3

transformation ×3

default-value ×1

transform ×1