user1563221
user1563221

Reputation: 391

Android : Json Parsing show error

[

    {
        "description": "My home", 
        "name": "Sweet Home", 
        "point": {
            "lat": 22.890976, 
            "long": 90.459097
        }, 
        "type": 1,
        "cid": "5319197376176516414"
    }

This is my json file for parsing information. Here is my code for parsing name and lng.

BufferedReader jsonReader = new BufferedReader(new InputStreamReader(this.getResources().openRawResource(R.raw.map)));
        StringBuilder jsonBuilder = new StringBuilder();
        try {
            for (String line = null; (line = jsonReader.readLine()) != null;) {
                jsonBuilder.append(line).append("\n");
            }

            JSONTokener tokener = new JSONTokener(jsonBuilder.toString());
            JSONArray jsonArray = new JSONArray(tokener);

                JSONObject jsonObject = jsonArray.getJSONObject(0);

                String title = jsonObject.getString("name");
                String lhg = jsonObject.getJSONObject("point").getString("lng");
} catch (FileNotFoundException e) {
            Log.e("jsonFile", "file not found");
        } catch (IOException e) {
            Log.e("jsonFile", "ioerror");
        } catch (JSONException e) {
            Log.e("jsonFile", "error while parsing json");
        }
    }

}

It show's me an exception error while parsing json. How do i solve that? What was my problem?

Upvotes: 0

Views: 101

Answers (2)

URAndroid
URAndroid

Reputation: 6277

 String lhg = jsonObject.getJSONObject("point").getString("lng")  use "long" instead of lng.

Upvotes: 1

Timothy Groote
Timothy Groote

Reputation: 8652

Because "Point" in your JSON object never contains a property called "lng"

 String lhg = jsonObject.getJSONObject("point").getString("lng")

it does contain one named "long"

"point": {
            "lat": 22.890976, 
            "long": 90.459097
        }, 

So the code to fetch the longitude should look like this:

 String lhg = jsonObject.getJSONObject("point").getString("long")

Upvotes: 5

Related Questions