java解析json文件(省,市,区)
[{"code":"11","name":"北京市"},{"code":"12","name":"天津市"},{"code":"13","name":"河北省"},{"code":"14","name":"山西省"},{"code":"15","name":"内蒙古自治区"},
{"code":"21","name":"辽宁省"},{"code":"22","name":"吉林省"},{"code":"23","name":"黑龙江省"},{"code":"31","name":"上海市"},{"code":"32","name":"江苏省"},
{"code":"33","name":"浙江省"},{"code":"34","name":"安徽省"},{"code":"35","name":"福建省"},{"code":"36","name":"江西省"},{"code":"37","name":"山东省"},
{"code":"41","name":"河南省"},{"code":"42","name":"湖北省"},{"code":"43","name":"湖南省"},{"code":"44","name":"广东省"},{"code":"45","name":"广西壮族自治区"},
{"code":"46","name":"海南省"},{"code":"50","name":"重庆市"},{"code":"51","name":"四川省"},{"code":"52","name":"贵州省"},{"code":"53","name":"云南省"},
{"code":"54","name":"西藏自治区"},{"code":"61","name":"陕西省"},{"code":"62","name":"甘肃省"},{"code":"63","name":"青海省"},{"code":"64","name":"宁夏回族自治区"},
{"code":"65","name":"新疆维吾尔自治区"}]
有相同数据类型的province,city,area,street的json文件,通过解析,实现控制台输出。
建了一个公共类方法,代码如下:
package com.sdlanji.budd.common; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader; /**
* 用于json文件数据的获取
*
*
*
*/ public class jsonExport { public static JSONArray getJsonArray(String url) {
//jsonArray[]格式
JSONArray jsonArray = new JSONArray();
StringBuilder result = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(url), "UTF-8"));
String s = null;
while ((s = br.readLine()) != null) {
result.append(System.lineSeparator() + s);
}
br.close();
jsonArray = JSONArray.parseArray(result.toString());
} catch (Exception e) {
e.printStackTrace();
}
return jsonArray;
} public static JSONObject getJsonObjectBy(String url){ JSONObject jsonObject = new JSONObject();
StringBuilder result = new StringBuilder();
try{
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
new FileInputStream(url),"UTF-8"));
String s = null;
while((s = bufferedReader.readLine()) != null){
result.append(System.lineSeparator() + s);
}
bufferedReader.close();
jsonObject = JSONObject.parseObject(result.toString());
}catch (Exception e){
e.printStackTrace();
}
return jsonObject;
}
} controller层代码:
public static void main(String[] args){
//创建一个文件对象,指定要读取的文件
// File file = new File("F:/json文件/provinces");
//省数据
JSONArray ja = new JSONArray();
ja = jsonExport.getJsonArray("F:\\json文件\\provinces.json");
for(int i=0;i<ja.size();i++) {
//jsonObject{}格式
JSONObject jsonObject = ja.getJSONObject(i);
String proName = jsonObject.get("name").toString();
Integer proId = jsonObject.getInteger("code");
System.out.println(proId + "," + proName);
}
//市数据
JSONArray jsonArray = new JSONArray();
jsonArray = jsonExport.getJsonArray("F:\\json文件\\cities.json");
for (int j=0;j<jsonArray.size();j++) {
JSONObject jsonObject1 = jsonArray.getJSONObject(j);
String cityName = jsonObject1.get("name").toString();
Integer provinceCode = jsonObject1.getInteger("provinceCode");
Integer cityId = jsonObject1.getInteger("code");
System.out.println( cityName + "," + cityId);
}
//区数据
JSONArray jsonArray1 = new JSONArray();
jsonArray1 = jsonExport.getJsonArray("F:\\json文件\\areas.json");
for (int y=0;y<jsonArray1.size();y++) {
JSONObject jsonObject = jsonArray1.getJSONObject(y);
String areaName = jsonObject.get("name").toString();
Integer code = jsonObject.getInteger("code");
System.out.println(areaName + "," + code);
}
//街道数据
JSONArray jsonArrayStreet = new JSONArray();
jsonArrayStreet = jsonExport.getJsonArray("F:\\json文件\\streets.json");
Map<Object,Object> list1 = new HashMap<>();
List<Object> listStreet = new ArrayList<>();
for (int x=0;x<jsonArrayStreet.size();x++){
JSONObject jsonObject1 = jsonArrayStreet.getJSONObject(x);
String streetName = jsonObject1.get("name").toString();
Integer codeId = jsonObject1.getInteger("code");
Integer areaId = jsonObject1.getInteger("areaCode");
System.out.println(streetName + "," + codeId);
}
}
代码输出结果:
取部分结果
省:
11,北京市
12,天津市
13,河北省
14,山西省
15,内蒙古自治区
21,辽宁省
22,吉林省
市:
秦皇岛市,1303
邯郸市,1304
邢台市,1305
保定市,1306
张家口市,1307
承德市,1308
沧州市,1309
廊坊市,1310
衡水市,1311
区:
亮甲店镇,130229101
鸦鸿桥镇,130229102
窝洛沽镇,130229103
石臼窝镇,130229104
虹桥镇,130229105
散水头镇,130229106
街道:
人民路街道办事处,659004003
兵团一零一团,659004500
兵团一零二团,659004501
兵团一零三团,659004502
博古其镇,659006100
双丰镇,659006101
现在想把数据拼接起来,街道总共4万多条,不知道要怎么操作了。
java解析json文件(省,市,区)的更多相关文章
- Java解析JSON文件的方法
http://blog.sina.com.cn/s/blog_628cc2b70101dydc.html java读取文件的方法 http://www.cnblogs.com/lovebread/ar ...
- Java解析JSON文件的方法(一)
一.首先需要在Eclipse工程中导入相关的jar包,jar包参见链接:http://yunpan.alibaba-inc.com/share/link/NdA5b6IFK 二.提供一份待解析的jso ...
- Java解析JSON文件的方法 (二)
assets文件夹资源的访问 assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件. 1. 先在Activity里面调用g ...
- JAVA简便解析json文件
JAVA简便解析json文件 首先放上我要解析的json文件: { "resultcode":"200", "reason":"S ...
- Android--------使用gson解析json文件
##使用gson解析json文件 **json的格式有两种:** **1. {}类型,及数据用{}包含:** **2. []类型,即数据用[]包含:** 下面用个例子,简单的介绍gson如何解析jso ...
- Java解析json(二):jackson
Java解析json(二):jackson 官方参考 Jackson Home Page:https://github.com/FasterXML/jackson Jackson Wiki:htt ...
- 安卓解析JSON文件
安卓解析JSON文件 根据JOSN文件的格式,文件只有两种数据,一是对象数据,以 {}为分隔,二是数组,以[]分隔 以下介绍安卓如何解析一个JSON文件,该文件存放在assets目录下,即:asset ...
- java解析xml文件并输出
使用java解析xml文件,通过dom4j,代码运行前需先导入dom4j架包. ParseXml类代码如下: import java.io.File; import java.util.ArrayLi ...
- Java解析json字符串和json数组
Java解析json字符串和json数组 public static Map<String, String> getUploadTransactions(String json){ Map ...
随机推荐
- Re:从 0 开始的微服务架构--(三)微服务架构 API 的开发与治理--转
原文来自:聊聊架构公众号 前面的文章中有说到微服务的通信方式,Martin Folwer 先生在他对微服务的定义中也提到“每个服务运行在其独立的进程中,服务与服务间采用 轻量级的通信机制 互相协作(通 ...
- select2多选
在TCX_1710项目中的拒绝代码配置页面可以选择多个拒绝字段,效果图如下 代码中需要注意的有以下地方:图1为提交保存时对多选数据的获取,图2为修改是对多选数据的回显 对于多选框宽度太窄的问题,可以参 ...
- PowerDesigner 16.5 安装及破解步骤
安装: 1.双击运行PowerDesigner16.5_Evaluation.exe,进入安装界面,点击(Next)下一步按钮: 2.下拉菜单选择HongKong,选中 I agree to the ...
- activity(工作流)初步学习记录
1.概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任务的过程自动进行,从而实现某个预期 ...
- ZBrush中功能强大的插件PaintStop
PaintStop是ZBrush®3.1的手绘插件,可以比较真实的模拟手绘风格,尤其是用水彩笔刷画水墨风格画.PaintStop插件可供用户免费使用. PaintStop是一款功能强大的插件,已经被添 ...
- 使用maven插件dockerfile-maven-plugin生成Docker镜像并推送到镜像仓库
1.引入maven插件 <build> <plugins> <plugin> <groupId>com.spotify</groupId> ...
- [BeiJing2006]狼抓兔子 dijkstra+平面图最小割
一眼裸的最大流求最小割,然而数据范围过大,跑不下来. 我们可以将平面图转成对偶图,并进行连边. 这样,每条边的长度就对应原图中的割边长度. 起点到终点的最短路即为最小割. 别用SPFA,会死的很惨 C ...
- 51nod 1325 两棵树的问题(最大权闭合子图)
首先如果点权全都为正,就可以直接选所有的点. 活在梦里.. 考虑枚举一个点\(i\),作为我们选择的集合中的一个点. 然后我们把另一个点\(j\)选入集合的时候必须把两棵树中\(i\)和\(j\)路径 ...
- 红黑树(RBTREE)之上-------构造红黑树
该怎么说呢,现在写代码的速度还是很快的,很高兴,o(^▽^)o. 光棍节到了,早上没忍住,手贱了一般,看到*D的优惠,买了个机械键盘,晚上就到了,敲着还是很舒服的,和老婆炫耀了一把哈哈. 光棍节再去* ...
- /etc/rc.d/rc.sysinit
[root@web02 ~]# ls /etc/rc.d/rc.sysinit /etc/rc.d/rc.sysinit [root@web02 ~]# [root@web02 ~]# ls /etc ...