如何从HttpURLConnection读取json数据

问题描述 投票:0回答:3

我正在使用 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 数据。

有什么提示吗?预先感谢。

java json rest httpurlconnection urlconnection
3个回答
2
投票

设置 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 在此处输入链接描述


1
投票

使用专用库进行json序列化/反序列化,例如Jackson。它将允许您直接从

InputStream
读取 json 内容到映射响应的 POJO 中。会是这样的:

MyRestResponse response=objectMapper.readValue(urlConnection.getInput(),MyRestResponse.class);

看起来不错不是吗?

这里有 Jackson 项目 GitHub 页面,其中包含使用示例。 https://github.com/FasterXML/jackson


1
投票

您可以使用gson库 https://github.com/google/gson 用于解析您的数据

Gson gson = new Gson();
YourClass objOfYourClass = gson.fromJson(urlConnection.getInputStream(), YourClass.class);
© www.soinside.com 2019 - 2024. All rights reserved.