Stuck with Java json exception

Background: Have collected tweets from the streaming api to a textfile and successfully parsed each line to my java objects using json.org library. Great.

Problem: From the "text": -field I want to extract information, this works semi-good. I do however get this exception running my code:

org.json.JSONException: Expected a ',' or '}' at 1280 [character 1281 line 1]

Trying to locate where in my textfile this is, I only see regular characters and with the mindset that json.org lib does what it's supposed to do, why am I getting this? Where do I even begin?

This is line 1280 in my file. Character 1281 is a 'o' so I have no idea what I'm doing wrong.

{"retweet_count":null,"text":"Listening to Don't Get Me Wrong by Pretenders on @Grooveshark: http:\/\/tinysong.com\/o9ui #musicmonday #nowplaying","id_str":"28756412823","entities":{"urls":[{"indices":[63,87],"expanded_url":null,"url":"http:\/\/tinysong.com\/o9ui"}],"hashtags":[{"text":"musicmonday","indices":[88,100]},{"text":"nowplaying","indices":[101,112]}],"user_mentions":[{"id_str":"3806441","indices":[49,61],"screen_name":"Grooveshark","name":"Grooveshark","id":3806441}]},"coordinates":null,"retweeted":false,"in_reply_to_status_id":null,"place":null,"geo":null,"new_id_str":"608552371148029952","source":"web","new_id":608552371148029952,"truncated":false,"in_reply_to_status_id_str":null,"favorited":false,"in_reply_to_user_id_str":null,"created_at":"Tue Oct 26 03:40:05 +0000 2010","contributors":null,"user":{"follow_request_sent":null,"lang":"en","time_zone":"La Paz","id_str":"24490174","following":null,"profile_text_color":"666666","followers_count":466,"profile_background_image_url":"http:\/\/a3.twimg.com\/profile_background_images\/113185343\/x0f8a90fc4af7484f7a0c6c11d594f94.png","profile_link_color":"3399CC","description":"I'm a complex being. A bit of a nerd and a geek with social skills, as unlikely as that may sound. Active gamer. Lover of music, movies, books and food. ","listed_count":18,"notifications":null,"profile_background_tile":true,"statuses_count":17095,"profile_sidebar_fill_color":"202020","profile_image_url":"http:\/\/a0.twimg.com\/profile_images\/1117295836\/geekydot2_normal.jpg","location":"Dominican Republic","show_all_inline_media":false,"profile_use_background_image":false,"contributors_enabled":false,"friends_count":339,"profile_sidebar_border_color":"666666","protected":false,"screen_name":"dotina","geo_enabled":false,"created_at":"Sun Mar 15 05:06:39 +0000 2009","name":"Ligia Carri\u00f3n","favourites_count":0,"url":"http:\/\/geekydot.wordpress.com\/","id":24490174,"verified":false,"utc_offset":-14400,"profile_background_color":"202020"},"in_reply_to_screen_name":null,"in_reply_to_user_id":null,"id":28756412823}

and here's the same thing, formatted:

{
    "retweet_count": null,
    "text": "Listening to Don't Get Me Wrong by Pretenders on @Grooveshark: http:\/\/tinysong.com\/o9ui #musicmonday #nowplaying",
    "id_str": "28756412823",
    "entities": {
        "urls": [
            {
                "indices": [
                    63,
                    87
                ],
                "expanded_url": null,
                "url": "http:\/\/tinysong.com\/o9ui"
            }
        ],
        "hashtags": [
            {
                "text": "musicmonday",
                "indices": [
                    88,
                    100
                ]
            },
            {
                "text": "nowplaying",
                "indices": [
                    101,
                    112
                ]
            }
        ],
        "user_mentions": [
            {
                "id_str": "3806441",
                "indices": [
                    49,
                    61
                ],
                "screen_name": "Grooveshark",
                "name": "Grooveshark",
                "id": 3806441
            }
        ]
    },
    "coordinates": null,
    "retweeted": false,
    "in_reply_to_status_id": null,
    "place": null,
    "geo": null,
    "new_id_str": "608552371148029952",
    "source": "web",
    "new_id": 608552371148029952,
    "truncated": false,
    "in_reply_to_status_id_str": null,
    "favorited": false,
    "in_reply_to_user_id_str": null,
    "created_at": "Tue Oct 26 03:40:05 +0000 2010",
    "contributors": null,
    "user": {
        "follow_request_sent": null,
        "lang": "en",
        "time_zone": "La Paz",
        "id_str": "24490174",
        "following": null,
        "profile_text_color": "666666",
        "followers_count": 466,
        "profile_background_image_url": "http:\/\/a3.twimg.com\/profile_background_images\/113185343\/x0f8a90fc4af7484f7a0c6c11d594f94.png",
        "profile_link_color": "3399CC",
        "description": "I'm a complex being. A bit of a nerd and a geek with social skills, as unlikely as that may sound. Active gamer. Lover of music, movies, books and food. ",
        "listed_count": 18,
        "notifications": null,
        "profile_background_tile": true,
        "statuses_count": 17095,
        "profile_sidebar_fill_color": "202020",
        "profile_image_url": "http:\/\/a0.twimg.com\/profile_images\/1117295836\/geekydot2_normal.jpg",
        "location": "Dominican Republic",
        "show_all_inline_media": false,
        "profile_use_background_image": false,
        "contributors_enabled": false,
        "friends_count": 339,
        "profile_sidebar_border_color": "666666",
        "protected": false,
        "screen_name": "dotina",
        "geo_enabled": false,
        "created_at": "Sun Mar 15 05:06:39 +0000 2009",
        "name": "Ligia Carri\u00f3n",
        "favourites_count": 0,
        "url": "http:\/\/geekydot.wordpress.com\/",
        "id": 24490174,
        "verified": false,
        "utc_offset": -14400,
        "profile_background_color": "202020"
    },
    "in_reply_to_screen_name": null,
    "in_reply_to_user_id": null,
    "id": 28756412823
}

Answers


You might want to try another parser which could give you better error message.

Error itself suggests that this would occur within a JSON Object, after value, in which case it should be either followed by a comma separating following value, or '}' to end object. It is possible that line number could be off (which would be a bug). That's why it would be good to try to either indent input for testing (to get more accurate location) or to try smaller snippets.


Need Your Help

Ruby hash direct access vs merge

ruby hash merge

Is there any difference between:

Wrapping a nested collection

c# oop

I'm currently working on a wrapper for a third party component (not the best idea, I know) that we just purchased, a grid to be precise. Well, exposing most of the grid properties hasn't been that ...