У меня есть это значение json, но я не могу его разобрать. Каждый раз, когда я запускаю приложение, оно закрывается принудительно. Я неправильно разбираю?

JSON

{
    "NewDataSet": {
        "Table": {
            "Company_Code": "1",
            "Company_Name": "Roush",
            "First_Name": "Driver",
            "ISponsor_Code": "0",
            "Last_Name": "Test003",
            "Password": "cObH0Gh7caq9OhgCN0C3fA==",
            "Sponsor_ID": null,
            "Sponsor_Name": null,
            "UploadEvents": "false",
            "User_Id": "driver003",
            "User_Name": "Driver Test003",
            "User_Type": "Driver"
        }
    }
}

ГЛАВНЫЙ КЛАСС

protected void onPostExecute(String s) {
                super.onPostExecute (s);
                // Log.d ("hello", s);


                try {
                    jsonObject = new JSONObject (s);
                    NewDataSet = jsonObject.getJSONObject ("NewDataSet");
                    Log.d("",NewDataSet.toString ());

                    Table = jsonObject.getJSONObject ("Table");
                    String Company_Code = Table.getString ("Company_Code");
                    String Company_Name = Table.getString ("Company_Name");
                    String First_Name = Table.getString ("First_Name");
                    String ISponsor_Code = Table.getString ("ISponsor_Code");
                    String Last_Name = Table.getString ("Last_Name");
                    String Password = Table.getString ("Password");
                    String Sponsor_ID = Table.getString ("Sponsor_ID");
                    String Sponsor_Name = Table.getString ("Sponsor_Name");
                    String UploadEvents = Table.getString ("UploadEvents");
                    String User_Id = Table.getString ("User_Id");
                    String User_Name = Table.getString ("User_Name");
                    String User_Type = Table.getString ("User_Type");
                    tv.setText (Company_Code + ":" + Company_Name + ":" + First_Name + ":" + ISponsor_Code + ":" + Last_Name + ":" + Password + ":" + Sponsor_ID + ":" + Sponsor_Name + ":" + UploadEvents + ":" + User_Id + ":" + User_Name + ":" + User_Type);

                } catch (JSONException e) {
                    e.printStackTrace ();
                }


            }
        }
    }
-2
anuj 2 Май 2014 в 12:14

2 ответа

Лучший ответ

Ваша ошибка здесь

NewDataSet = jsonObject.getJSONObject ("NewDataSet");
Log.d("",NewDataSet.toString ());
Table = jsonObject.getJSONObject ("Table"); // Table can be access via NewDataSet 

Это должно быть

NewDataSet = jsonObject.getJSONObject ("NewDataSet");
Log.d("",NewDataSet.toString ());
Table = NewDataSet.getJSONObject ("Table");

Самый впечатляющий : -

Вам необходимо ознакомиться со стилем программирования Java. Название методов должно начинаться с маленьких букв, а не с заглавных. Прочтите Руководство по стилю программирования Java

4
Pankaj Kumar 2 Май 2014 в 08:25

Может это вам поможет:

protected void onPostExecute(String s) {
            super.onPostExecute (s);
            // Log.d ("hello", s);


            try {
                jsonObject = new JSONObject (s);
                NewDataSet = jsonObject.getJSONObject ("NewDataSet");
                Log.d("",NewDataSet.toString ());

                JSONObject tableObj= NewDataSet.getJSONObject ("Table");
                String Company_Code = tableObj.getString ("Company_Code");
                String Company_Name = tableObj.getString ("Company_Name");
                String First_Name = tableObj.getString ("First_Name");
                String ISponsor_Code = tableObj.getString ("ISponsor_Code");
                String Last_Name = tableObj.getString ("Last_Name");
                String Password = tableObj.getString ("Password");
                String Sponsor_ID = tableObj.getString ("Sponsor_ID");
                String Sponsor_Name = tableObj.getString ("Sponsor_Name");
                String UploadEvents = tableObj.getString ("UploadEvents");
                String User_Id = tableObj.getString ("User_Id");
                String User_Name = tableObj.getString ("User_Name");
                String User_Type = tableObj.getString ("User_Type");
                tv.setText (Company_Code + ":" + Company_Name + ":" + First_Name + ":" + ISponsor_Code + ":" + Last_Name + ":" + Password + ":" + Sponsor_ID + ":" + Sponsor_Name + ":" + UploadEvents + ":" + User_Id + ":" + User_Name + ":" + User_Type);

            } catch (JSONException e) {
                e.printStackTrace ();
            }


        }
    }
}
1
Umang Kothari 2 Май 2014 в 08:50