Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

error org.json.JSONException: No value for PROJECT_NAME This is my json

Tags:

json

android

I am getting the error org.json.JSONException: No value for PROJECT_NAME This is my json

{"PROJECTS":[ 
         {
            "PROJECT_NUMBER": "2062",
            "PROJECT_NAME": "OPW 51183"
         },
         {
            "PROJECT_NUMBER": "404",
            "PROJECT_NAME": "404"
         },
         {
            "PROJECT_NUMBER": "2125",
            "PROJECT_NAME": "OPW 50016"
         },
         {
            "PROJECT_NUMBER": ""
         },
         {
            "PROJECT_NUMBER": "2130",
            "PROJECT_NAME": "OPW 51151 63rd & Shirley SEW S"
         },
         {
            "PROJECT_NUMBER": "2159",
            "PROJECT_NAME": "OPW 51226"
         }
        ]

    }

and cod is:

for (int i = 0; i < innerProjectarray.length(); i++) 
    {

JSONObject obj=innerProjectarray.getJSONObject(i);
String projectnumber1=obj.getString("PROJECT_NUMBER");
String projectname1=obj.getString("PROJECT_NAME");
        }

Is there is any way to find the key if key not exist then np need to get the value od particular string Help me thanks

like image 936
Sunil Kumar Avatar asked Sep 27 '13 05:09

Sunil Kumar


2 Answers

Use has to check if key is present in Json. It returns true if this object has a mapping for name.

like

for (int i = 0; i < innerProjectarray.length(); i++) {

    JSONObject obj = innerProjectarray.getJSONObject(i);
    if (obj.has("PROJECT_NUMBER")) {
        String projectnumber1 = obj.getString("PROJECT_NUMBER");
    }

    if (obj.has("PROJECT_NAME")) {
        String projectname1 = obj.getString("PROJECT_NAME");
    }
}

Another way is to use optString which returns the value mapped by name if it exists, coercing it if necessary. Returns the empty string if no such mapping exists.

for (int i = 0; i < innerProjectarray.length(); i++) {

    JSONObject obj = innerProjectarray.getJSONObject(i);

    String projNum = obj.optString("PROJECT_NUMBER"); 
    String projName = obj.optString("PROJECT_NAME"); 
    // and use both values. 
}
like image 86
Pankaj Kumar Avatar answered Oct 29 '22 16:10

Pankaj Kumar


// Because if the parameter or variable is not exists into JSON object it won't execute further code and throw exception so its better to use like :

try {

            JSONObject data = coupon;



                if(data.has("event_recurring_text")) {

                    if ("".equals(data.getString("event_recurring_text"))) {

                        bundle.putString("event_time", data.getString("event_recurring_text"));

                    } else {

                        bundle.putString("event_time", data.getString("event_time"));
                    }
                }
            }// end if



        } catch (JSONException e) {

            Log.i("Handler 4","JSONException: Handled");            
            e.printStackTrace();
        }

//Here data.has() method checking whether variable exists or not into oject

//vKj

like image 36
Vinod Joshi Avatar answered Oct 29 '22 16:10

Vinod Joshi