Back to Top

How to Iterate through JSONObject in Java and Kotlin

Updated 16 January 2026

In this blog, we will learn how to Iterate through JSONObject in Java and Kotlin.

Introduction

JSON is essential for data exchange in modern applications using Java and Kotlin. In this Webkul guide, we explain simple and effective ways to iterate through JSON in both languages.

jsonandkotlin

Methods to Iterate through JSONObject

Developers can choose between Java’s traditional approaches or Kotlin’s concise syntax for JSON iteration. Each language offers distinct advantages for different development scenarios and preferences.

Java: Using Iterator with keys() Method

Java’s org.json package provides a straightforward approach through the keys() method. This traditional approach remains reliable for Android and server-side applications.

Searching for an experienced
Magento Company ?
Find out More
String jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
JSONObject jsonObject = new JSONObject(jsonString);
Iterator<String> keys = jsonObject.keys();

while (keys.hasNext()) {
    String key = keys.next();
    Object value = jsonObject.get(key);
    Log.d("JSON", "Key: " + key + ", Value: " + value);
}

Kotlin: Using For Loop with keys() Method

Kotlin simplifies JSON iteration with more concise syntax and better type safety. The language’s modern features make JSON handling more intuitive and less error-prone.

val jsonString = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"
val jsonObject = JSONObject(jsonString)
for (key in jsonObject.keys()) {
    val value = jsonObject.get(key)
    Log.d("JSON", "Key: $key, Value: $value")
}

Handling Nested JSONArray in Java

Java requires explicit type checking when dealing with nested JSONArrays. This approach ensures proper handling of complex JSON structures with mixed data types.

String jsonString = "{\"name\":\"John\", \"age\":30, \"hobbies\":[\"reading\", \"gaming\", \"coding\"]}";
JSONObject mainObject = new JSONObject(jsonString);
Iterator<String> mainKeys = mainObject.keys();

while (mainKeys.hasNext()) {
    String key = mainKeys.next();
    Object value = mainObject.get(key);
    
    if (value instanceof JSONArray) {
        JSONArray jsonArray = (JSONArray) value;
        for (int i = 0; i < jsonArray.length(); i++) {
            Log.d("JSON", "Array Item: " + jsonArray.get(i));
        }
    }
}

Handling Nested JSONArray in Kotlin

Kotlin’s smart casting and concise syntax simplify nested JSONArray handling. The language provides more elegant solutions for complex JSON structures.

val jsonString = "{\"name\":\"John\", \"age\":30, \"hobbies\":[\"reading\", \"gaming\", \"coding\"]}"
val mainObject = JSONObject(jsonString)
for (key in mainObject.keys()) {
    val value = mainObject.get(key)
    
    if (value is JSONArray) {
        for (i in 0 until value.length()) {
            Log.d("JSON", "Array Item: ${value.get(i)}")
        }
    }
}

Best Practices for JSON Iteration

Always use opt() methods instead of get() for safer JSON access in both languages. Validate JSON structure before iteration to prevent runtime exceptions and crashes.

Consider using modern libraries like Moshi (Kotlin) or Jackson (Java) for complex JSON structures. These libraries provide better type safety and performance for production applications.

Conclusion

Both Java and Kotlin offer effective methods for JSONObject iteration with their unique advantages. Mastering these techniques ensures efficient data processing in Android and backend applications.

Thanks for reading this blog.

Please check my other blogs here.

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Back to Top

Message Sent!

If you have more details or questions, you can reply to the received confirmation email.

Back to Home