100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java 用http远程请求另外一个服务器 并接收返回回来的json数据

java 用http远程请求另外一个服务器 并接收返回回来的json数据

时间:2023-08-10 13:35:05

相关推荐

java 用http远程请求另外一个服务器 并接收返回回来的json数据

需求场景:一个服务器的项目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++) {//获取一个subObjectJsonObject 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);//存到listlists.add(map);}循环json集合里面的数据并且放到lists里面for (int i = 0; i < array.size(); i++) {//获取一个subObjectJsonObject 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);//存到listlists.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之后的数据:

到此全部转换完成

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。