键包含特殊字符
流程
测试样本数据
{
"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
属性中是不可见的。