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();
}
}