我正在使用 application1 中的 HttpURLConnection 从 applicaton2 获取 json 数据。 'applicaton2' 在 Rest 响应对象中设置 json 数据。在 application1.json 中获得响应后,如何读取该 json 数据?
示例代码:
应用1:
url = "url to application2";
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.connect();
应用2”:
List<ModelA> lListModelAs = Entities data;
GenericEntity<List<ModelA>> lEntities = new GenericEntity<List<ModelA>>(lListModelAs) {};
lResponse = Response.ok(lEntities ).build();
我需要从响应中的 urlConnection 读取上面的 json 数据。
有什么提示吗?预先感谢。
设置 HttpURLConnection 后。
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
JsonObject contentObj = new JsonParser().parse(reader).getAsJsonObject();
boolean status = contentObj.get("status").getAsBoolean();
String Message = contentObj.get("msg").getAsString();
String Regno = contentObj.get("regno").getAsString();
String User_Id = contentObj.get("userid").getAsString();
String SessionCode = contentObj.get("sesscode").getAsString();
您可以在此处下载 gson jar 在此处输入链接描述
使用专用库进行json序列化/反序列化,例如Jackson。它将允许您直接从
InputStream
读取 json 内容到映射响应的 POJO 中。会是这样的:
MyRestResponse response=objectMapper.readValue(urlConnection.getInput(),MyRestResponse.class);
看起来不错不是吗?
这里有 Jackson 项目 GitHub 页面,其中包含使用示例。 https://github.com/FasterXML/jackson
您可以使用gson库 https://github.com/google/gson 用于解析您的数据
Gson gson = new Gson();
YourClass objOfYourClass = gson.fromJson(urlConnection.getInputStream(), YourClass.class);