Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Build a Blog Reader Android App Getting Data from the Web Parsing Data Returned in JSON Format

BlogReader Challenge problem.

Can someone please help me debug this code, I keep getting an error on the challange.

// JSONObject 'jsonData' was loaded from data.jsonJSONArray jsonBooks = jsonData.getJSONArray("books"); String name = jsonData.getString("name"); String publisher = jsonData.getString("publisher"); String language = jsonData.getString("language");

JSONArray jsonBooks = jsonData.getJSONArray("books");

for(int i = 0; i < jsonBooks.length(); i++){ JSONObject jsonBook = jsonBooks.getJSONObject(i); int pages = jsonBook.getInt("pages"); Log.i("CodeChallenge", "title" + ", " + pages); }

1 Answer

Daniel Hartin
Daniel Hartin
18,106 Points

The problem you are having is that you are using the string title not the book title. You need to change the last line of your for loop where it creates the string in the Log to the code below:

(basically reference the book title by creating a new string variable and assigning it the book title and use that)

String name = jsonData.getString("name"); 
String publisher = jsonData.getString("publisher"); 
String language = jsonData.getString("language");

JSONArray jsonBooks = jsonData.getJSONArray("books");

for(int i = 0; i < jsonBooks.length(); i++){
  JSONObject jsonBook = jsonBooks.getJSONObject(i);
  int pages = jsonBook.getInt("pages");
  String title = jsonBook.getString("title");
  Log.i("CodeChallenge", title + ", " + pages); }

Hope this helps Daniel