JSON文件在JAVA中读取两次而不是一次

JSON文件在JAVA中读取两次而不是一次,java,json,Java,Json,我正在构建一个连接器来读取JSON文件并写入数据库。我的问题是,它把所有东西都写了两次,也就是说,如果有两个文件,它会读两次,三个文件,三个文件,三个文件,三个文件,再等等。。 *虽然我认为问题在于我的许多for循环,但还不能解决它。以下是我的全部代码: 公共数据(文件、映射参数) 抛出FileNotFoundException、IOException、SQLException { //读取JSON文件 File folder=new File(sourcepath);//Inubit将在其中

我正在构建一个连接器来读取JSON文件并写入数据库。我的问题是,它把所有东西都写了两次,也就是说,如果有两个文件,它会读两次,三个文件,三个文件,三个文件,三个文件,再等等。。 *虽然我认为问题在于我的许多for循环,但还不能解决它。以下是我的全部代码:


公共数据(文件、映射参数)
抛出FileNotFoundException、IOException、SQLException
{
//读取JSON文件
File folder=new File(sourcepath);//Inubit将在其中保存文件
File[]filename=folder.listFiles();
//检查所有文件
对于(文件jsonInputFile:fileNames){
if(jsonInputFile.getName().toString().startsWith(“Metadata_JSON3”)){
System.out.println(“JSON文件:”+jsonInputFile);
}否则{
System.out.println(“不正确的JSON文件”+jsonInputFile);
继续;
}//过滤非JSON文件
//设置JSON解析器
JSONParser=新的JSONParser();
JSONParser parser2=新的JSONParser();
FileReader=新的FileReader(jsonInputFile);
objectobj=null;
试一试{
obj=parser.parse(reader);
}捕获(例外e){
}
试一试{
jsonarray=(jsonarray)obj;
}捕获(异常p1){
字符串objcast=“[”+obj+“]”;
试一试{
jsonarray=(jsonarray)parser2.parse(objcast);
}捕获(解析异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
}
//开始读取JSON文件
for(对象值sobj:jsonarray){
JSONObject values2=(JSONObject)valuesObj;
//得分
JSONArray行=(JSONArray)values2.get(“行”);
对于(int i=0;i
我已经设法解决了这个问题。我有一个主程序,为每个文件调用collect数据部分,然后在collect数据部分调用for循环,从而导致了双重写入。因此,我刚刚删除了循环:


对于(filejsoninputfile:fileNames){//刚刚删除了这一行
if(jsonInputFile.getName().toString().startsWith(“Metadata_JSON3”)){
System.out.println(“JSON文件:”+jsonInputFile);
}否则{
System.out.println(“不正确的JSON文件”+jsonInputFile);
继续;
}//过滤非JSON文件
//设置JSON解析器