user1375026 user1375026 - 7 months ago 26
Java Question

Java HttpURLConnection Returns JSON

I'm trying to make a http get request which returns a json response. I need some of the values from the json response to be stored in my session. I have this:

public String getSessionKey(){
BufferedReader rd = null;
StringBuilder sb = null;
String line = null;
try {
URL url = new URL(//url here);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.connect();
rd = new BufferedReader(new InputStreamReader(connection.getInputStream()));
sb = new StringBuilder();

while ((line = rd.readLine()) != null)
{
sb.append(line + '\n');
}
return sb.toString();

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return "";
}


This returns the JSON in a string:

{ "StatusCode": 0, "StatusInfo": "Processed and Logged OK", "CustomerName": "Mr API"}


I need to store StatusCode and CustomerName in the session. How do I deal with returning JSON with java?

Thanks

Answer

You can use Gson. Here is the code to help you:

Map<String, Object> jsonMap;  
Gson gson = new Gson();  
Type outputType = new TypeToken<Map<String, Object>>(){}.getType();  
jsonMap = gson.fromJson("here your string", outputType);

Now you know how to get from and put those in session. You need to include Gson library in classpath.