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 Weather App (2015) Working with JSON Using JSONObject

Using JSONObject task code

My code won't work and have no idea why. It says its something to do with using a string in the "new JSONObject(jsonData)" line.

I'm aware that jsonData is a string but in the actual code for the project it is aswell and the code has no problems. Can anyone help? Or does anyone have the correct code for this task?

JSONChallenge.java
JSONObject forecast = new JSONObject(jsonData);
String name = forecast.getString("name");
String publisher = forecast.getString("publisher");
String language = forecast.getString("language");
data.json
{
    "name":"Treehouse Book Series",
    "publisher":"Wiley",
    "language":"English",
    "books":[
        {
            "title":"HTML5 Foundations",
            "author":"Matt West",
            "pages":384
        },
        {
            "title":"CSS3 Foundations",
            "author":"Ian Lunn",
            "pages":352
        }
    ]
}

1 Answer

Chase Marchione
Chase Marchione
155,055 Points

Hi Thomas,

1) A JSONObject has already been created for us (the first sentence of the challenge states 'The data in the file data.json has been loaded into a JSONObject named jsonData'), so we can remove that 'JSONObject forecast = new JSONObject(jsonData);' statement.

2) Since the name of the JSONObject that was already made for us is jsonData, that is the object we'll reference, so that we can get values for our strings from what's stored in that object.

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

Hope this helps!