【问题标题】:Importing data from JSON file to MySQL database using java [closed]使用java将数据从JSON文件导入MySQL数据库[关闭]
【发布时间】:2017-08-07 22:01:17
【问题描述】:

我目前遇到了将数据动态导入MySQL 数据库的需求(但使用java)。

我不确定对此的最佳做法是什么,但让我提出我的方案。

json 可以是动态的,并且每次我从 API 端点读取时,它都不确定 json 中的内容 例如:

"table1" : {
    "field1" : "value1",
    "field2" : "value2",
    "field3" : "value3"
}

有一次json会是这样的

其他时候可能是这样的

"table2" : {
    "field1" : "value1",
    "field2" : "value2",
    "field3" : "value3",
    "field4" : "value4"
}

所以我的问题是我应该解析 json 并将其与表中与 json 名称匹配的字段进行比较吗?

或者是否有任何 java 中可用的库可以让我轻松有效地处理这个问题。

注意:我必须将此准备为一项服务,该服务将在一定间隔后持续扫描给定的 API,并且相应的 JSON 需要导入到它所属的表中,如果该表没有不存在,那么它必须自动创建。

感谢大家的耐心阅读和支持,这是我从未处理过的新需求。

提前感谢您!

【问题讨论】:

  • IMO 似乎不是一个好的做法。确保 json 提供正确的表名。然后收集表元数据以获取键并根据可用值生成插入列表(如果每个表都有自己的验证器,也更容易选择正确的验证器。)。如果它无效,那就太糟糕了。相应地报告。
  • 是的@KarelG 这不是一个好处理的场景,但数据来自旧应用程序,我无权更改 json API。 Validator 似乎是一个很好的解决方案,但是表名和模式是不确定的,这意味着 json 文件中可能会有新表,如果它不存在我们必须生成表,是否有任何替代的最佳实践?非常感谢!!

标签: java mysql json parsing jdbc


【解决方案1】:

在我的项目中,我使用了 google-gson API。它工作得很好,而且很无痛。 你可以找到带有描述here的项目。

下面是 API docs 的一个简单示例,它支持多维数组,具有任意复杂的元素类型:

集合示例

Gson gson = new Gson();
Collection<Integer> ints = Lists.immutableList(1,2,3,4,5);

// Serialization
String json = gson.toJson(ints);  // ==> json is [1,2,3,4,5]

// Deserialization
Type collectionType = new TypeToken<Collection<Integer>>(){}.getType();
Collection<Integer> ints2 = gson.fromJson(json, collectionType);
// ==> ints2 is same as ints

希望这会有所帮助。

【讨论】:

  • 谢谢!但这不是必需的,我需要使用java将json中的数据导入mysql
【解决方案2】:

你可以使用google-gson或者jackson api让你的代码更高效

【讨论】:

  • 是的 naib,我正在使用 jackson,谢谢,但我正在寻找一个可以节省时间而不是自己编码的库,如果有请通知我,谢谢
猜你喜欢
  • 2017-12-19
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-16
  • 2016-05-24
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
相关资源
最近更新 更多