Skip to main content

键包含特殊字符

流程

测试样本数据

{
"username": "u123",
"password": "321",
"details": {
"Customer First Name": "Zhang",
"Customer Last Name": "San",
"Product 1 (2)": "Active Directories",
"Product 2 (*)": "其他 * \t 无",
"Timestamp": "A-5*9_8:30-17:30_27:00"
}
}

可见GenerateFlowFile组件设置:

设置提取属性

从中不难看出:

  • 普通键,可通过$.keyN.subKeyM 的JSONPath方式引用。
  • 键包含特殊字符,比如空格、点(JSONPath键分隔符)、括号、星号等等特殊字符,均采用$.keyN["subKeyM"] (或单引号: $.keyN['subKeyM'])方式.
  • 如果键在根且包含特殊字符,则也是用中括号[]加单引号或双引号来提取,表达式写法则为$["subKeyM"]$.["subKeyM"]

实际上,属性设置的表达式,符合标准的JSONPath规范。

提取结果

其中,值中表示Tab值的\t在属性中解析了,故而在product2属性中是不可见的。

附测试流程文件

模板文件