Patrick Stel
Patrick Stel

Reputation: 49

android: create json object or array?

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

Answers (2)

loeschg
loeschg

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

Sayyam
Sayyam

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

Related Questions