使用java将数据从JSON文件导入MySQL数据库

时间:2017-03-16 15:55:58

标签: java mysql json parsing jdbc

我目前遇到了将数据动态导入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需要导入其所属的表中,如果表格没有t存在然后它必须自动创建。

感谢所有患者的阅读和支持,这是一项我从未处理过的新要求。

提前谢谢你!

2 个答案:

答案 0 :(得分:1)

您可以使用google-gson或jackson api来提高代码效率

答案 1 :(得分: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

希望这会有所帮助。