I get a very weird error when I tried to parse a JSON. Effectively, the file is very simple and composed of a simple object as follow :
{
    "registered":false,
    "firstname":"xxx",
    "name":"yyyy",
    "email":"yyyy.xxx@gmail.com",
    "picture":"xxxxx.jpg",
    "username":"xxxy"
}
To parse this file, I used the following code, which is inspired by the example of the Android SDK :
public static boolean isRegistered(int nmb) {
    boolean toReturn = true;
    JsonReader reader = null;
    try {
        reader = new JsonReader(new InputStreamReader(new URL("xxx").openConnection().getInputStream()));
        reader.beginObject();
        while(reader.hasNext()) {
            String name = reader.nextName();
            Log.i("Next value", name);
            switch (name) {
                case "registered":
                    toReturn = reader.nextBoolean();
                    break;
                case "firstname":
                    ProfileManager.getInstance().setFirstname(reader.nextString());
                    break;
                case "name":
                    ProfileManager.getInstance().setName(reader.nextString());
                    break;
                case "email":
                    break;
                case "picture":
                    break;
                case "username":
                    break;
            }
        }
        reader.endObject();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    return toReturn;
}
When I start the execution, I get an error rising when performing.
String name = reader.nextName();
The error said that it expects a name but it gets a STRING. To be sure, I replace nextName() by nextString() and I obtained the opposite error : Expected a String but was NAME. I decide to check the first value thanks to the peek() method, and it clearly says that the first element is a NAME. So I tried a very simple thing by reading the object manually, without the loop and it works. How is it possible ? Furthermore, what do I have to modify to make this code workable ?
Thank you !
 
     
     
     
    