java - 将 SQL 命令转换为 JSON 参数格式

标签 java json regex string

在下面的示例中,我有一个包含 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"
    }]

}

最佳答案

这是一种关于如何做到这一点的方法。这假设列名称是动态的。

  1. 从查询中删除所有单引号。
  2. 使用 fields 创建一个类领域。
  3. 使用正则表达式 + java.util.Pattern + jave.util.Matcher提取 () 之间的项目。您将获得 3 个匹配项,每个匹配项有 2 组,一组包含列名称,一组包含 te 值。
  4. 对于每场比赛:用逗号分隔组,然后输入 <column, column value>进入 map 。将此 map 添加到列表中。
  5. 创建第 2 步中创建的对象的新实例,并将映射列表设置为 fields值。
  6. 使用GSONJackson用于将第 5 步中的实例转换为 JSON 的库。

关于java - 将 SQL 命令转换为 JSON 参数格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49912359/

相关文章:

javascript - 在 PHP 本身中将 PHP 数组转换为 JS 数组

json - 如何为 GeoShape Circle 创建 JSON-LD 架构?

javascript - 用AngularJS分两步记录数据

java - 在 Java 中验证直径 URI 的方法?

regex - 为什么 Perl 6 语法原型(prototype)的正文中不能有任何内容?

java - 使用 Spring 数据 jpa 强制插入

java - 通过 String 键获取对象是否比 Key 键更快? (GAE/J)

java - 将 recyclerView 焦点/滚动到最后一个项目

java - 获取带有数学表达式的字符串,将其解析为函数数学表达式以便稍后对其求值(Java)

c# - 正则表达式不匹配时的自定义错误消息