样例数据
需要将该数据的columns转化为ColumnJava对象
{
"message": {
"columns": [
{
"columnAlias": "id",
"columnName": "id",
"columnOrder": "1",
"columnType": "int(10,0)",
"isIncrementExtraction": false,
"isIngest": true,
"isNullable": false,
"isPrimary": true,
"isSensitive": false,
"tableId": "130918"
},
{
"columnAlias": "姓名",
"columnName": "name",
"columnOrder": "2",
"columnType": "varchar(50)",
"isIncrementExtraction": false,
"isIngest": true,
"isNullable": false,
"isPrimary": false,
"isSensitive": false,
"tableId": "130918"
},
{
"columnAlias": "电话",
"columnName": "phone",
"columnOrder": "3",
"columnType": "varchar(20)",
"isIncrementExtraction": false,
"isIngest": true,
"isNullable": true,
"isPrimary": false,
"isSensitive": false,
"tableId": "130918"
},
{
"columnAlias": "地址",
"columnName": "address",
"columnOrder": "4",
"columnType": "varchar(200)",
"isIncrementExtraction": false,
"isIngest": true,
"isNullable": true,
"isPrimary": false,
"isSensitive": false,
"tableId": "130918"
},
{
"columnAlias": "卡号",
"columnName": "cart_no",
"columnOrder": "5",
"columnType": "varchar(20)",
"isIncrementExtraction": false,
"isIngest": true,
"isNullable": true,
"isPrimary": false,
"isSensitive": false,
"tableId": "130918"
},
{
"columnAlias": "创建时间",
"columnName": "create_time",
"columnOrder": "6",
"columnType": "datetime(19)",
"isIncrementExtraction": false,
"isIngest": true,
"isNullable": true,
"isPrimary": false,
"isSensitive": false,
"tableId": "130918"
},
{
"columnAlias": "更新时间",
"columnName": "update_time",
"columnOrder": "7",
"columnType": "timestamp(19)",
"isIncrementExtraction": true,
"isIngest": true,
"isNullable": false,
"isPrimary": false,
"isSensitive": false,
"tableId": "130918"
}
],
"tableId": "130918"
},
"source": "DATASOURCE_COLUMN_MESSAGE",
"type": "UPSERT"
}
解决方案
DocumentContext jsonDocument = JsonPath
.using(Configuration.defaultConfiguration().jsonProvider(new JacksonJsonProvider()).mappingProvider(new JacksonMappingProvider()))
.parse(json数据);
List<TableColumnInfo> tableColumnInfos = jsonDocument.read("$.message.columns[*]", new TypeRef<List<Column>>(){});