现在想设计一个程序(JSON文件通用入库),该程序需要支持将json文件里的数据录入数据库相对应的表中,请问该程序怎么设计比较合理?
例:现有两个json文件(a.json,b.json) 这两个的文件里的字段是不一样的,现在需要将a.json录到a表中,b.json录到b表中
看题主的意思是要一个工具,能实现动态json文件数据的入库。我提供一种思路:利用开源工具kettle来实现。
可以参考:https://blog.csdn.net/xuguoxing123/article/details/116049204
给你提供一个思路 ,根据json文件名称判断数据表是否存在,如果存在旧解析json,将表中对应的文件存到表中,如果不存在通过程序创建表,然后将数据存入表中
可以参考这篇文章
java json 存mysql_java解析json文件并保存到mysql数据库_矢量边界的博客-CSDN博客
或者
java解析json文件并保存到mysql数据库_YSoup的博客-CSDN博客_json数据库
这个就看你用什么语言了,如果是java的话
如需完整的,就参考以下这个:
也可以使用nio读取json文件,比如如下:
package com.tool;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Map;
/**
* @Author halon
* @create 2021/9/
*/
public class ReadLocalJsonFileDemo {
public static void main(String[] args) throws IOException {
File file = new File("F:\\halon.json");
nioMethod(file);
}
private static void nioMethod(File file) throws IOException {
String jsonString = new String(Files.readAllBytes(Paths.get(file.getPath())));
System.out.println(JSONObject.parseObject(jsonString));
}
}
得到json,要利用循环得到对应的数据,然后插进数据库:
JSONArray Nodes = jobj.getJSONArray("节点");//构建JSONArray数组
for (int i = 0 ; i < Nodes.size();i++){
JSONObject key = (JSONObject)Nodes.get(i);
String symbolSize = (String)key.get("name");
System.out.println(key.get("symbolSize"));
System.out.println(symbolSize);
}