Search code examples
javajsonresponse

How to extract json data from the response - Java


I am trying to extract data from Json string which is obtained by a response using only Java code. I am posting my Java code here.

OUTPUT:

Entering into while loop
[{"name":"Frank","food":"pizza","quantity":3}]

This is my Java code.

public void receive() 
{    
System.out.println("Entering into sendNote method");   
try {
// make json string,
String json = "{\"name\":\"Frank\",\"food\":\"pizza\",\"quantity\":3}";
// send as http get request
URL url1 = new URL("http://myurl/file.php?usersJSON="+userList);
URLConnection conn1= url1.openConnection();
//I am receiving exactly what I have sent....
BufferedReader rd = new BufferedReader(new InputStreamReader(conn1.getInputStream()));
String line;
while ((line = rd.readLine()) != null) 
{
System.out.println("Entering into while loop");
System.out.println(line);// line contains the received json parameters
//I want to enter the recieved parameters into my database
//
//
//
//I need the solution right here....
}
rd.close();
} 
catch (Exception e) 
{
System.out.println("Error Occured while receiving");
e.printStackTrace();
}
}

Thank you !!!!!

@Ankur: This is how I tried,

This is one of your second ways... I called the function from where I wanted and passed the variable "line" containing the json string

@ Lahiru Prasanna, @ankur-singhal Thanks a lot.!!


Solution

  • I think that you successfully got HttpResponse.here variable called response is HttpResponse.

            // Could do something better with response.
            StatusLine statusLine = response.getStatusLine();
    
            if (statusLine.getStatusCode() == 200) {
                HttpEntity entity = response.getEntity();
                InputStream content = entity.getContent();
            StringBuilder   builder = new StringBuilder();
                BufferedReader reader = new BufferedReader(
                    new InputStreamReader(content));
                String line;
                try {
                    while ((line = reader.readLine()) != null) {
                        builder.append(line);
                    }
                    content.close();
    
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                try {
                JSONObject  jsonObject = new JSONObject(builder.toString());
                } catch (JSONException e) {
                    System.out.println("Error parsing data " + e.toString());
                }
    
            }
        } catch (Exception e) {
            System.out.println("Error:  " + e.toString());
            System.out.println( "" + e.toString());
            System.out.println("" + e.toString());
        } 
    

    And important thing is never use Strings for json operations.

    you can retrieve your data from jsonObject like this

    String name = jsonObject.getString("name");