0% found this document useful (0 votes)
173 views

JSON in Android - Tutorial 1. Android and JSON

The document discusses JSON (JavaScript Object Notation) and its use in Android applications. It provides examples of retrieving JSON data from Twitter APIs and parsing it using the org.json library. The code sample downloads JSON data from a Twitter user's timeline, counts the number of tweets, and logs the text of each tweet. Writing JSON in Android simply involves creating JSONObjects or JSONArrays and calling toString() to output the JSON.

Uploaded by

Foly O Simh
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
173 views

JSON in Android - Tutorial 1. Android and JSON

The document discusses JSON (JavaScript Object Notation) and its use in Android applications. It provides examples of retrieving JSON data from Twitter APIs and parsing it using the org.json library. The code sample downloads JSON data from a Twitter user's timeline, counts the number of tweets, and logs the text of each tweet. Writing JSON in Android simply involves creating JSONObjects or JSONArrays and calling toString() to output the JSON.

Uploaded by

Foly O Simh
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 5

JSON in Android - Tutorial 1.

Android and JSON


1.1. Android and JSON
JSON is a very condense data exchange format. Android includes the json.org libraries which allow to work easily with JSON files.

1.2. Twitter
Twitter is a great source for JSON. You can just call a URI and retrieve JSON. Here are some examples: Table 1. Twitter URI's
URI Description

http://twitter.com/statuses/user_timeline/vogella.json

Get the timeline of user vogella .

http://search.twitter.com/search.json?q=android

Search for the term "android" on Twitter.

http://twitter.com/statuses/user_timeline/vogella.json

Returns the user data of user vogella .

Please note that some URI's return a JSONObject object while others return a JSONArray. The following coding uses an URI which returns an JSONArray.

2. Reading JSON
Create a new Android project "de.vogella.android.twitter.json" with the package "de.vogella.android.twitter.json" and the activity "ParseJSON".

Create the following coding for the activity. This will download the twitter feed for the user http://twitter.com/vogellaand write the number of entries and the text messages to the Android log file.

package de.vogella.android.twitter.json;

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader;

import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.StatusLine; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.json.JSONArray; import org.json.JSONObject;

import android.app.Activity; import android.os.Bundle; import android.util.Log;

public class ParseJSON extends Activity {

/** Called when the activity is first created. */

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String readTwitterFeed = readTwitterFeed(); try { JSONArray jsonArray = new JSONArray(readTwitterFeed); Log.i(ParseJSON.class.getName(), "Number of entries " + jsonArray.length()); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); Log.i(ParseJSON.class.getName(), jsonObject.getString("text")); } } catch (Exception e) { e.printStackTrace(); } }

public String readTwitterFeed() { StringBuilder builder = new StringBuilder(); HttpClient client = new DefaultHttpClient(); HttpGet httpGet = new HttpGet( "http://twitter.com/statuses/user_timeline/vogella.json"); try {

HttpResponse response = client.execute(httpGet); StatusLine statusLine = response.getStatusLine(); int statusCode = statusLine.getStatusCode(); if (statusCode == 200) { HttpEntity entity = response.getEntity(); InputStream content = entity.getContent(); BufferedReader reader = new BufferedReader( new InputStreamReader(content)); String line; while ((line = reader.readLine()) != null) { builder.append(line); } } else { Log.e(ParseJSON.class.toString(), "Failed to download file"); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return builder.toString(); } }

To run this example assign the uses-permission to your "AndroidManifest.xml" for "android.permission.INTERNET".

3. Write JSON
Writing JSON is very simple. Just create the JSONObject or JSONArray and use the toString() method.

public void writeJSON() { JSONObject object = new JSONObject(); try { object.put("name", "Jack Hack"); object.put("score", new Integer(200)); object.put("current", new Double(152.32)); object.put("nickname", "Hacker"); } catch (JSONException e) { e.printStackTrace(); } System.out.println(object); }

You might also like