Reputation: 49
I'm learning everyday a little bit more about android developing and json code. But now I'm stuck on this; I can get my values from my online database and show it but I see the entire json code. And I would like to see just the part I want it to show.
this is my code, I think it's really basic but i'm also learning :)
As you can see I'm just getting the value from the webpage and putting it in my textview, but I would like to put it in a JSONObject or JSONArray don't know witch one is better.
can somebody please assist me with this?
With kind regards
public class Bordje extends Activity{
public void onCreate (Bundle savedInstanceState) {
try
{
super.onCreate(savedInstanceState);
setContentView(R.layout.bordje);
//This is out textview element, obtained by id from XML Layout
TextView myListView = (TextView)findViewById(R.id.netResult2);
//Lets connect to the internet
try {
String result = "";
//create new client object
HttpClient httpclient = new DefaultHttpClient();
//now post to the url
HttpPost httppost = new HttpPost("http://www.wvvzondag2.nl/android/leesbordje.php");
//execute url
HttpResponse response = httpclient.execute(httppost);
//get message from the response
HttpEntity entity = response.getEntity();
//get the content from message
InputStream webs = entity.getContent();
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(webs, "iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
//slow our inputstream
webs.close();
//puts the resut into a string
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//Parsing the JSON Data
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++){
JSONObject json_data = jArray.getJSONObject(i);
json_data.getString("introtext");
//Get an output to the screen
//then here should be some code that displays text?
//myListView.setText(Html.fromHtml(json_data)); ?
}
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
}
catch (Exception e)
{
//this is the line of code that sends a real error message to the log
Log.e("ERROR", "ERROR IN CODE: " + e.toString());
}
}
Upvotes: 0
Views: 1882
Reputation: 30581
It's not really a question of which one is better. A JSON object and JSON array are two different things.
A JSON Array is an ordered sequence of (like) items (http://www.json.org/javadoc/org/json/JSONArray.html).
JSONArray jsonArray = new JSONArray("[JSON TEXT]");
String textToDisplay = jsonArray.getString(index); //return String at index
A JSON Object is a map (http://www.json.org/javadoc/org/json/JSONObject.html).
JSONObject jsonObj = new JSONObject("[JSON TEXT]");
String textToDisplay = jsonObj.getString("key"); //returns String value
Then after you have the data, set it in the text view like before.
myListView.setText(textToDisplay);
Upvotes: 2
Reputation: 959
If you are getting valid json from server you can simply make a JSONArray
or JSONObject
of it depending on whose object you are getting so there is no point of saying which one is better. However in your case it will most probably be a JSONArray.
Well to achieve that you can use gson to convert a valid json string into JSONObject
or JSONArray
.
you will be working with .toJson()
and .fromJSON(object)
methods.
Upvotes: 0