json structure example

How to Parse Json in Android

In Android development, JSON (JavaScript Object Notation) is commonly used to transfer data between a server and an app. This guide explains how to parse JSON in Android Java step-by-step. Parsing JSON allows developers to retrieve and use data efficiently, whether it's a user profile, product list, or any structured data.

What is JSON?

JSON is a lightweight data format often used for transmitting data. It represents data as key-value pairs and is easy to read for humans and machines.

Example JSON

{
  "name": "John Doe",
  "age": 30,
  "isEmployed": true,
  "skills": ["Java", "Kotlin", "Android"]
}

Steps to Parse JSON in Android Java

1. Add JSON to Your Project

First, get the JSON data. This can come from a file, an API, or hardcoded as a string in your app. For example:

String jsonString = "{ 'name': 'John Doe', 'age': 30, 'isEmployed': true }";

2. Use JSONObject or JSONArray

Android provides the JSONObject and JSONArray classes to parse JSON.

Parsing an Object

Use JSONObject for JSON objects:

try {
    JSONObject jsonObject = new JSONObject(jsonString);
    String name = jsonObject.getString("name");
    int age = jsonObject.getInt("age");
    boolean isEmployed = jsonObject.getBoolean("isEmployed");
} catch (JSONException e) {
    e.printStackTrace();
}

Parsing an Array

For JSON arrays, use JSONArray:

try {
    String jsonArrayString = "{ 'skills': ['Java', 'Kotlin', 'Android'] }";
    JSONObject jsonObject = new JSONObject(jsonArrayString);
    JSONArray skillsArray = jsonObject.getJSONArray("skills");

    for (int i = 0; i < skillsArray.length(); i++) {
        String skill = skillsArray.getString(i);
        Log.d("Skill", skill);
    }
} catch (JSONException e) {
    e.printStackTrace();
}

3. Fetch JSON from an API

To fetch JSON from a server, use libraries like Retrofit, Volley, or HttpURLConnection. Here’s a simple example with HttpURLConnection: (I like volley though 😉)

try {
    URL url = new URL("https://api.example.com/data");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("GET");

    InputStream inputStream = connection.getInputStream();
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
    StringBuilder jsonBuilder = new StringBuilder();
    String line;

    while ((line = reader.readLine()) != null) {
        jsonBuilder.append(line);
    }

    reader.close();
    JSONObject responseJson = new JSONObject(jsonBuilder.toString());
    Log.d("Response", responseJson.toString());
} catch (Exception e) {
    e.printStackTrace();
}

Best Practices

  • Always handle JSONException to avoid crashes.
  • Use libraries like Gson or Moshi for complex JSON parsing.
  • Validate JSON format before parsing.

Conclusion

Parsing JSON in Android Java is usually done with the built-in JSONObject and JSONArray classes. For complex scenarios, libraries like Gson can simplify the process. Understanding JSON parsing is essential for working with APIs and building dynamic applications.