使用java从JSON文件导入数据到MySQL数据库
问题描述:
我目前遇到了要求将数据动态导入MySQL
数据库(但使用java
)。使用java从JSON文件导入数据到MySQL数据库
我不确定最佳做法是什么,但让我提出我的方案。
JSON的可以是动态的和不确定的每一个我从API端点 例如读取时间将在JSON什么:
"table1" : {
"field1" : "value1",
"field2" : "value2",
"field3" : "value3"
}
一次的JSON会是这样
其他时间它可能会像
"table2" : {
"field1" : "value1",
"field2" : "value2",
"field3" : "value3",
"field4" : "value4"
}
所以我的问题是,我应该解析JSON,并将其与表中的字段将JSON比较匹配名称?
或者是否有任何Java库可用,这将使我能够轻松高效地处理这个问题。
注:我要准备这个作为一定的时间间隔和JSON需要得到进口到它所属的表中的相应后会持续扫描一个给定的API服务,如果表不存在,那么必须自动创建。
感谢您的耐心阅读和支持,这是一种新的需求,我从来没有处理过。
先谢谢您!
答
在我的项目,我用谷歌,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
希望这有助于。
+0
谢谢!但这不是要求,我需要通过使用java将json中的数据导入到mysql中 –
不会显示为IMO的良好做法。确保json提供正确的表名。然后收集表元数据以获取密钥并根据可用值生成插入列表(如果每个表都有自己的验证器,则选择正确的验证器也更容易)。如果它无效,那就太糟糕了。相应报告。 – KarelG
是@KarelG这不是一个好的处理方案,但数据来自遗留应用程序,我没有权限更改json API。 Validator似乎是一个很好的解决方案,但是表名和模式是不确定的,这意味着json文件中可能会有新表,并且如果它不存在,我们必须生成表,有没有其他的最佳实践呢?非常感谢!! –