zoukankan      html  css  js  c++  java
  • [工具类] 读取解析json文件

    读取json文件并转换为字符串

        /**
         * 通过本地文件访问json并读取
         *
         * @param path:json文件路径
         * @return:json文件的内容
         */
        public static String ReadFile(String path) {
            StringBuffer laststr = new StringBuffer();
            File file = new File(path);// 打开文件
            BufferedReader reader = null;
            try {
                FileInputStream in = new FileInputStream(file);
                reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));// 读取文件
                String tempString = null;
                while ((tempString = reader.readLine()) != null) {
                    laststr = laststr.append(tempString);
                }
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (IOException el) {
                    }
                }
            }
            return laststr.toString();
        }

    解析json(fastjson)

    public static void main(String args[]) {
            String filePath = "D:/data.json";
            String jsonString = ReadFile(filePath);
            JSONArray jsonArr = JSON.parseArray(jsonString);
            Map<String, Object> resultMap = new HashMap<String, Object>();
            for (int i = 0; i < jsonArr.size(); i++) {
    
                Map data_map = (Map) jsonArr.get(i);//本次循环获取数据
                Integer customer_id = (Integer) data_map.get("customer_id");
                String customer_email = (String) data_map.get("customer_email");
                String customer_firstname = (String) data_map.get("customer_firstname");
                String customer_lastname = (String) data_map.get("customer_lastname");
    
                String sku = (String) data_map.get("sku");
                String created_at = (String) data_map.get("created_at");
    
                Map level_1_map = (Map) resultMap.get(customer_id.toString());
                if (null == level_1_map || level_1_map.size() <= 0) {
                    level_1_map = new HashMap<String, Object>();
                    level_1_map.put("customer_id", customer_id);
                    level_1_map.put("customer_email", customer_email);
                    level_1_map.put("customer_firstname", customer_firstname);
                    level_1_map.put("customer_lastname", customer_lastname);
                }
    
                List list = level_1_map.get("list") == null ? new ArrayList<T>() : (List) level_1_map.get("list");
                Map listMap = new HashMap<String, Object>();
                listMap.put("sku", sku);
                listMap.put("created_at", created_at);
                list.add(listMap);
                level_1_map.put("list", list);
    
                resultMap.put(customer_id.toString(), level_1_map);
            }
            System.out.println(JSON.toJSONString(resultMap));
    
    
        }
  • 相关阅读:
    codevs 3160 最长公共子串(SAM)
    noi2018d2t1
    后缀自动机
    [Scoi2014]方伯伯的玉米田
    【NOI2017】泳池
    【BZOJ2560】串珠子
    POJ 1737 统计有n个顶点的连通图有多少个 (带标号)
    【BZOJ3590】[Snoi2013]Quare 状压DP
    【BZOJ1095】【ZJOI2007】捉迷藏 [动态点分治]
    BZOJ1316: 树上的询问
  • 原文地址:https://www.cnblogs.com/avivaye/p/9297762.html
Copyright © 2011-2022 走看看