有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从HttpURLConnection读取json数据

我正在使用application1中的HttpURLConnection从Application2中获取json数据。”applicaton2'在Rest响应对象中设置json数据。在application1中获得响应后,如何读取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数据

有什么提示吗?提前谢谢


共 (3) 个答案

  1. # 1 楼答案

    使用专用库进行json序列化/反序列化,例如Jackson。它将允许您将json内容直接从InputStream读取到映射响应的POJO中。会是这样的:

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

    看起来不错吧

    这里有一个Jackson project GitHub页面和使用示例。 https://github.com/FasterXML/jackson

  2. # 2 楼答案

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

    Gson gson = new Gson();
    YourClass objOfYourClass = gson.fromJson(urlConnection.getInputStream(), YourClass.class);
    
  3. # 3 楼答案

    设置HttpURLConnection后

    BufferedReader reader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
    
      StringBuilder response = new StringBuilder();
      String line;
    
        JsonObject obj = 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 enter link description here