Gson解析json文件

public void Gson() {

    try {
        String abcPath="";//配置解析的文本路径

         JsonParser parser=new JsonParser();  //创建JSON解析器

         BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(abcPath),"UTF-8"),50*1024*1024); //设置缓冲区 编码

         JsonObject object=(JsonObject) parser.parse(in);  //创建JsonObject对象

         JsonArray array=object.get("features").getAsJsonArray();    //得到为features的数组
          for(int i=0;i<array.size();i++){

                JsonObject subObject=array.get(i).getAsJsonObject();

                 JsonObject attributes=subObject.get("attributes").getAsJsonObject();//得到为attributes的节点

                 JsonObject geometry=subObject.get("geometry").getAsJsonObject();//得到为geometry的节点


                 JSONArray JArray = new JSONArray();  
                 JSONArray JArrayOne = new JSONArray();  

                 int leng=6;//保留几位小数

                 JsonArray JArs= geometry.get("rings").getAsJsonArray();

                 for (int j = 0; j < JArs.size(); j++) {

                     JsonArray JArsk=JArs.get(j).getAsJsonArray();



                     for (int k = 0; k <JArsk.size() ; k++) {
                         JsonArray JArskl=JArsk.get(k).getAsJsonArray();

                         if (k%10!=0 || k==0) {    //满十减一

                             for (int l = 0; l < JArskl.size()/2;  l++) {
                                     Double a=JArskl.get(l).getAsDouble();
                                     Double b=JArskl.get(l+1).getAsDouble();

                                     BigDecimal bd = new BigDecimal(a);
                                     BigDecimal setScale = bd.setScale(leng, bd.ROUND_DOWN);

                                     BigDecimal bdf = new BigDecimal(b);
                                     BigDecimal setScaleTwo = bdf.setScale(leng, bdf.ROUND_DOWN);

                                     String geomey= "["+setScale+","+setScaleTwo+"]";
                                     JArray.add(JSONArray.fromObject(geomey));//将geomey对象添加到Json数组中

                             }                                  
                        }

                    }

                }

                 JArrayOne.add(JArray);

                 String PAC=attributes.get("PAC").getAsString();
                 String NAME=attributes.get("NAME").getAsString();
                 String GEOMETRY=attributes.get("NAME").getAsString();

                Map<String, Object> params =new HashMap<String, Object>();
                params.put("PAC", PAC);
                params.put("NAME", NAME);
                params.put("GEOMETRY",GEOMETRY);
                jsonDao.add(params);//添加到了数据库
            }
              in.close();
            System.out.println("==================END===========================");
       } catch (JsonIOException e) {
           e.printStackTrace();
       } catch (JsonSyntaxException e) {
           e.printStackTrace();
       } catch (FileNotFoundException e) {
           e.printStackTrace();
       } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

猜你喜欢

转载自blog.csdn.net/kwmnitw/article/details/78041033