需求场景:一个服务器的项目a需要用到另外一个服务器项目b的数据。

我这里直接在a里面发请求,请求b对应的地址,b返回的是json类型的数据,然后在a里面解析这一串json就行了。详细经过看图。

1.项目a里面发请求get或者post

//远程连接请求数据 
			String data = HttpUtils.get("http://192.168.1.112:8081/url", null);

2.我这里用到了一个httputils的工具类,也贴上来给大家看看,主要用于便于发送请求。

// 工具类没贴完,好多人都要源码,没必要,原生的写法就可以

3.解析数据并解析,其中解析出集合有两种方式

方式一:

//用于接收远程发来的数据集合
			List<Map<String, Object>> lists = new ArrayList<Map<String,Object>>();
			//远程连接请求数据 
			String data = HttpUtils.get("http://192.168.1.112:8081/url", null);
			
			Gson gson = new Gson();
			JsonParser parser = new JsonParser();
			//json 转对象
			JsonObject object=(JsonObject) parser.parse(data);
			//根据发过来的数据格式 需要再转一次json 
			JsonObject object1 = (JsonObject) parser.parse(object.get("json").toString());
			//获取json 对象的对象 里面的list集合
			JsonArray array = object1.get("list").getAsJsonArray();
			//循环json集合里面的数据并且放到lists里面
			for (int i = 0; i < array.size(); i++) {
				//获取一个subObject
				JsonObject subObject = array.get(i).getAsJsonObject();
				//获取属性
				String id = subObject.get("id").toString();
				String maintePerson = subObject.get("maintePerson").toString();
				//保存属性
				Map<String, Object> map = new HashMap<String, Object>();
				map.put("id", id);
				map.put("maintePerson", maintePerson);
				//存到list
				lists.add(map);
			}循环json集合里面的数据并且放到lists里面
			for (int i = 0; i < array.size(); i++) {
				//获取一个subObject
				JsonObject subObject = array.get(i).getAsJsonObject();
				//获取属性
				String id = subObject.get("id").toString();
				String maintePerson = subObject.get("maintePerson").toString();
				//保存属性
				Map<String, Object> map = new HashMap<String, Object>();
				map.put("id", id);
				map.put("maintePerson", maintePerson);
				//存到list
				lists.add(map);
			}

方式二:

			//用于接收远程发来的数据集合
			List<Map<String, Object>> lists = new ArrayList<Map<String,Object>>();
			//远程连接请求数据 
			String data = HttpUtils.get("http://192.168.1.112:8081/url", null);
//			data = HttpUtils.post("http://192.168.1.112:8081/url", "");
			
			Gson gson = new Gson();
			JsonParser parser = new JsonParser();
			//json 转对象
			JsonObject object=(JsonObject) parser.parse(data);
			//根据发过来的数据格式 需要再转一次json 看自己的数据格式,如果只嵌套一层是不用这一步的,如果嵌套多层 还需要多次转json 
			JsonObject object1 = (JsonObject) parser.parse(object.get("json").toString());
			//获取json 对象的对象 里面的list集合
			List<Map<String, Object>> list = gson.fromJson(object1.get("list").toString(),new TypeToken<List<Map<String, Object>>>() {}.getType());获取json 对象的对象 里面的list集合
			List<Map<String, Object>> list = gson.fromJson(object1.get("list").toString(),new TypeToken<List<Map<String, Object>>>() {}.getType());

请求之前的json数据:

转成list之后的数据:

到此全部转换完成

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐