Error org.json.JSONException: No hay valor para PROJECT_NAME Este es mi json

Estoy recibiendo el error org.json.JSONException: No hay valor para PROJECT_NAME Este es mi 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" } ] } 

Y el bacalao es:

 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"); } 

¿Hay alguna manera de encontrar la clave si la clave no existe entonces np necesidad de obtener el valor de la cadena particular de od Ayuda me gracias

El uso tiene que comprobar si la llave está presente en Json. Devuelve true si este objeto tiene una asignación de nombre.

me gusta

 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"); } } 

Otra forma es usar optString que devuelve el valor asignado por nombre si existe, forzándolo si es necesario. Devuelve la cadena vacía si no existe dicha correlación.

 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. } 

// Porque si el parámetro o variable no existe en el objeto JSON no ejecutará código adicional y lanzará excepción por lo que es mejor utilizarlo como:

 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(); } 

// Aquí el método data.has () verifica si la variable existe o no en oject

// vKj

  { "PROJECT_NUMBER": "" }, 

Aquí solo tienes "PROJECT_NUMBER", por lo que tienes la excepción. Trate de encontrar una manera de lidiar con ella.

Puede comprobar dónde existe la clave o no utilizar has () Method. A continuación se muestra su código

 for (int i = 0; i < innerProjectarray.length(); i++) { JSONObject obj=innerProjectarray.getJSONObject(i); if(obj.has("PROJECT_NUMBER")) { Log.i("Project Number ",obj.getString("PROJECT_NUMBER")); } else { Log.i("Project Number ","No Such Tag as PROJECT_NUMBER"); } if(obj.has("PROJECT_NAME")) { Log.i("Project Name ",obj.getString("PROJECT_NAME")); } else { Log.i("Project Name ","No Such Tag as PROJECT_NAME"); } } 

Espero que el código anterior le ayude a resolver su problema

Espero que esta respuesta ayudará a alguien a tener este tipo de problema f, En mi nombre JSONarray tienen espacio entre comillas dobles, por lo que el espacio vacío considerar como un personaje. Este es un tipo de problema API. Mejor solicitud para eliminar el espacio de lo contrario desarrollador sufrirá.

 "jobtype ": [ { "id": "1006", "name": "Apprenticeship" } ] 

LogCat: excepción org.json.JSONException: Sin valor para

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

 JSONObject jobject = innerProjectarray.getJSONObject(i); if (jobject .has("PROJECT_NUMBER")) { String strnumber = jobject .getString("PROJECT_NUMBER"); } if (jobject .has("PROJECT_NAME")) { String strname= jobject .getString("PROJECT_NAME"); } 

}

Prueba esto:

 if (jsonObjectLeft.has("Left")) { if (jsonObjectLeft.getJSONArray("Left") != null && jsonObjectLeft.getJSONArray("Left").length() > 0) { jsonArrayLeft.put(jsonObjectLeft); jsonObject.put("12", jsonArrayLeft); } } 
  • Mapa Ver instrucciones de dibujo usando google Directions API - decodificar polilíneas
  • ¿Cuál es la mejor manera de combinar (fusionar) 2 JSONObjects?
  • Cómo analizar este JSON Array en android
  • Gestione diferentes tipos de respuesta JSON desde el mismo punto final en RetroFit
  • Parsing Gson con Json no funciona para Android
  • Envío de datos JSON de Android a PHP y escritura a archivo de texto
  • Cómo crear datos de formato JSON en android?
  • Serializar objeto para enviar dentro de Intent en Android
  • Múltiples elementos seleccionados RecyclerView in Activity.java
  • Android (JSONObject) ¿Cómo puedo recorrer un objeto JSON plano para obtener cada clave y cada valor
  • BufferedReader mientras lee datos Json
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.