public static void main(String[] args) {
String dbRecord = "INSERT INTO `atp`.`data_dictionary` (`DICTIONARY_ID`, `DICTIONARY_CODE`, `DICTIONARY_NUM`, `NAME`, `NAME_EN`, `NAME_NATIVE`, `REMARK`, `PARENT_CODE`, `SYSTEM_CODE`, `REC_STATUS`, `CREATOR`, `CREATE_TIME`, `MODIFIER`, `MODIFY_TIME`) VALUES ('190', '20b676fe818847af945841c4130c873b', 'DICTIONARY', '数据字典', '', '', NULL, '', NULL, '0', '5', '2014-09-01 22:19:48', '1', '2021-01-08 14:21:46');\n";
String[] insertArr = dbRecord.split("INSERT");
List<String> stringList = Arrays.asList(insertArr);
String jsonStr = dbRecordToJsonStr(stringList);
System.out.println(jsonStr);
}
private static String dbRecordToJsonStr(List<String> dbRecordList) {
if (null == dbRecordList || dbRecordList.size() == 0) {
return null;
}
StringBuilder resultBuilder = new StringBuilder();
StringBuilder sb = null;
for (int i = 0; i < dbRecordList.size(); i++) {
String dbRecord = dbRecordList.get(i);
if (!dbRecord.contains("(")) {
continue;
}
String fields = dbRecord.substring(dbRecord.indexOf("(") + 1, dbRecord.indexOf(")"));
String values = dbRecord.substring(dbRecord.lastIndexOf("(") + 1, dbRecord.lastIndexOf(")"));
String replacedFields = fields.replace("`", "");
String replacedValues = values.replace("'", "").trim();
String[] fieldsArr = replacedFields.split(",");
String[] valuesArr = replacedValues.split(",");
sb = new StringBuilder();
if (resultBuilder.length() == 0) {
sb.append("[");
}
for (int j = 0; j < fieldsArr.length; j++) {
if (0 == j) {
sb.append("{").
append("\"").
append(fieldsArr[j]).
append("\"").
append(":").
append("\"").append(valuesArr[j]).
append("\"").
append(",");
} else {
sb.append("\"").
append(fieldsArr[j]).
append("\"").
append(":").
append("\"").append(valuesArr[j]).
append("\"").
append(",");
}
}
if (i != dbRecordList.size() - 1) {
resultBuilder.append(sb.substring(0, sb.lastIndexOf(","))).append("},");
} else {
resultBuilder.append(sb.substring(0, sb.lastIndexOf(","))).append("}]");
}
}
return resultBuilder.toString();
}