I can take json object like this :
{"title":"this i the title", "description":"this is the description"}
or even json array : data[{"title":"ABCD","name":"Peter"}]
but how can I take :
{"meta":{"total_rows":1,"uri":"\/profile\/info\/","limit":150,"limit_type":"user",
"requests":2,"reset":3063,"recorded":"2010-12-27 22:48:49"}}
for example I want to take the limit, what should I do ?
This is the class where I can take json data on internet
public class Connection2 {
float rating;
String name,air_day,network,air_time,description;
public Connection2(String url){
connect_show_info(url);
}
public String returnName(){
return name;
}
private void connect_show_info(String url){
// Create the httpclient
HttpClient httpclient = new DefaultHttpClient();
// Prepare a request object
HttpGet httpget = new HttpGet(url);
// Execute the request
HttpResponse response;
// return string
String returnString = null;
try {
// Open the webpage.
response = httpclient.execute(httpget);
if(response.getStatusLine().getStatusCode() == 200){
// Connection was established. Get the content.
HttpEntity entity = response.getEntity();
// If the response does not enclose an entity, there is no need
// to worry about connection release
if (entity != null) {
// A Simple JSON Response Read
InputStream instream = entity.getContent();
// Load the requested page converted to a string into a JSONObject.
JSONObject json = new JSONObject(convertStreamToString(instream));
// Get the query value'
String query = json.getString("meta");
// Make array of the suggestions
JSONObject series = json.getJSONObject("series");
// Build the return string.
// Strings
air_day = "monday";
name = series.getString("name");
//air_day = series.getJSONObject(0).getString("air_day").toString() ;
//air_time = series.getJSONObject(0).getString("air_time").toString() ;
//network = series.getJSONObject(0).getString("network").toString();
//description = series.getJSONObject(0).getString("description").toString();
// Int
// Float
//rating = (float) series.getJSONObject(0).optDouble("rating");
// Cose the stream.
instream.close();
}
}
else {
// code here for a response othet than 200. A response 200 means the webpage was ok
// Other codes include 404 - not found, 301 - redirect etc...
// Display the response line.
returnString = "Unable to load page - " + response.getStatusLine();
}
}
catch (IOException ex) {
// thrown by line 80 - getContent();
// Connection was not established
returnString = "Connection failed; " + ex.getMessage();
}
catch (JSONException ex){
// JSON errors
returnString = "JSON failed; " + ex.getMessage();
}
}
And this is the way I want to take it :
Connection2 serie = new Connection2(url);
name = (TextView)findViewById(R.id.name);
description = (TextView)findViewById(R.id.description);
airday = (TextView)findViewById(R.id.air_day);
airtime = (TextView)findViewById(R.id.air_time);
name.setText(serie.returnName());
description.setText(serie.description);
Instead of writing lots of monkey code that org.json’s low-level JSON parser requires, I would recommend using one of data-binding capable JSON libs, like:
and define simple POJO structure, like:
and then use data binding, like:
if you want to build requests (or other JSON), similarly you would just do