在下面的示例中,我有一个包含 sql 插入命令的字符串。
我想解析字段名称和值并将它们转换为 JSON。
如何使用 Java 实现这一目标?
字符串中的 My SQL 命令:
String sqlQuery = "INSERT INTO myTable (ID, CITY, STATE, LAT_N, LONG_W) VALUES " +
"(13, 'Phoenix', 'AZ', 33, 112); |\r\n" +
"INSERT INTO myTable (ID, CITY, STATE, LAT_N, LONG_W) VALUES " +
"(44, 'Denver', 'CO', 40, 105); |\r\n" +
"INSERT INTO myTable (ID, CITY, STATE, LAT_N, LONG_W) VALUES " +
"(66, 'Caribou', 'ME', 47, 68); |";
我期待如下输出:
{
"fields": [{
"ID": "13",
"CITY": "Phoenix",
"STATE": "AZ",
"LAT_N": "33",
"LONG_W": "112"
}, {
"ID": "44",
"CITY": "Denver",
"STATE": "CO",
"LAT_N": "40",
"LONG_W": "105"
}, {
"ID": "66",
"CITY": "Caribou",
"STATE": "ME",
"LAT_N": "47",
"LONG_W": "68"
}]
}
最佳答案
这是一种关于如何做到这一点的方法。这假设列名称是动态的。
- 从查询中删除所有单引号。
- 使用
fields
创建一个类领域。 - 使用正则表达式 +
java.util.Pattern
+jave.util.Matcher
提取()
之间的项目。您将获得 3 个匹配项,每个匹配项有 2 组,一组包含列名称,一组包含 te 值。 - 对于每场比赛:用逗号分隔组,然后输入
<column, column value>
进入 map 。将此 map 添加到列表中。 - 创建第 2 步中创建的对象的新实例,并将映射列表设置为
fields
值。 - 使用
GSON
或Jackson
用于将第 5 步中的实例转换为 JSON 的库。
关于java - 将 SQL 命令转换为 JSON 参数格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49912359/