Parsing a JSON from HTTP Response in Java
28,076
Solution 1
Better and easier to use Gson
Gson gson = new Gson;
NameBean name = gson.fromJson(content.toString(),NameBean.class)
NameBean
is the object where you persist the json string.
public class NameBean implements Serializable{
public String name;
public String lastname;
public Int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public Int getAge() {
return age;
}
public void setAge(Int age) {
this.age = age;
}
}
Solution 2
instead of
Object obj=JSONValue.parse(content.toString());
JSONObject finalResult=(JSONObject)obj;
System.out.println(finalResult);
try this:
JSONObject jsonObject = new JSONObject(content.toString());
System.out.println(jsonObject.getString("Name") + " " jsonObject.getString("Lastname") + " " + jsonObject.getInt("Age"));
Author by
jojemapa
Updated on September 22, 2020Comments
-
jojemapa over 3 years
Hi I am using Client Http (apache), and json-simple.
I want to access the attributes of the json response, and then use them.
Any idea how to do this? I read a post and did not work as it but me.
This is my answer json:
{"Name":"myname","Lastname":"mylastname","Age":19}
This is my code java:
DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet getRequest = new HttpGet( "http://localhost:8000/responsejava"); getRequest.addHeader("accept", "application/json"); HttpResponse response = httpClient.execute(getRequest); if (response.getStatusLine().getStatusCode() != 200) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode()); } BufferedReader br = new BufferedReader( new InputStreamReader( (response.getEntity().getContent()) ) ); StringBuilder content = new StringBuilder(); String line; while (null != (line = br.readLine())) { content.append(line); } Object obj=JSONValue.parse(content.toString()); JSONObject finalResult=(JSONObject)obj; System.out.println(finalResult); httpClient.getConnectionManager().shutdown();
I printed null, What am I doing wrong?
-
jojemapa over 8 yearsHow I define Name Bean? ;(
-
jojemapa over 8 yearsJSONObject does not accept the string argument. The method getString not exist. Thanks for your time ;(
-
armysheng over 8 years
NameBean
should define with fields and getter setter matches with the json String. Check the Gson user guide for more, it's easy and won't take long minutes -
David Sousa over 8 yearsI think you are using a native library, because i used an external json jar and worked fine, I hope you can solve your problem ^^
-
jojemapa over 8 yearsThank you. Apparently you use json javax . It is not the same as Gson , or single - json . And can resolve my problem. Thank you.
-
Roman Vottner over 8 years@VipPunkJoshersDroopy org.json.JSONObject does have a
getString(String)
method. Though, always make sure to check withhas(String)
beforehand if the JSON actually contained this field on the respective object