最近接到一个需求,需要我将一个json文件的数据读取到内存中然后保存在sql中。

这里面其实就两个问题,一个是如何将文件中的数据读取出来。一个是如何将数据提取出来。

 

对于第一个问题,我选择了最简单的方案,直接将所有内容读到内存即可。

第二个问题我选择了使用fastjson进行字符串转json数组,然后提取对应的数据。

以下是源码部分,很简单,不加以解释:

@Test
    public void test1() throws Exception{
        final File file = new File("D:\\downloads\\city.json");
        final BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
        String line;
        StringBuilder stringBuilder = new StringBuilder();
        while ((line = reader.readLine()) != null){
            stringBuilder.append(line);
        }
        StringBuilder sql = new StringBuilder();
        final JSONArray parse = JSONArray.parseArray(String.valueOf(stringBuilder));
        for (int i = 0; i < parse.size(); i++){
            JSONObject json = parse.getJSONObject(i);
            sql.append("(");
            sql.append("\"").append(json.getString("city_name")).append("\"").append(", ").append("\"").
                    append(json.getString("city_pre")).append("\"");
            sql.append("),");
        }

        System.out.println(sql);
    }

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐