Je reçois le message d'erreur org.json.JSONException: aucune valeur pour PROJECT_NAME. Ceci est mon 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"
}
]
}
et la morue est:
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");
}
Y a-t-il un moyen de trouver la clé si la clé n'existe pas, alors np doit obtenir la valeur od chaîne particulière Aidez-moi, merci
Utilisez has pour vérifier si key est présent dans Json. Il renvoie true si cet objet est associé à name.
comme
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");
}
}
Un autre moyen consiste à utiliser optString , qui renvoie la valeur mappée par son nom, le cas échéant, en forçant son passage. Renvoie la chaîne vide en l'absence d'un tel mappage.
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.
}
// Parce que si le paramètre ou la variable n'existe pas dans l'objet JSON, il n'exécutera pas de code supplémentaire et lèvera une exception. Il est donc préférable de l'utiliser comme:
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();
}
// Ici la méthode data.has () vérifie si la variable existe ou non dans oject
// vKj
Vous pouvez vérifier où la clé existe ou non en utilisant la méthode has () .. .. ci-dessous, votre code ressemble à
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");
}
}
J'espère que le code ci-dessus vous aidera à résoudre votre problème
{
"PROJECT_NUMBER": ""
},
Ici, vous n’avez que "PROJECT_NUMBER", vous avez une exception Essayez de trouver un moyen de vous en occuper.
for (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");
}
}
Essaye ça:
if (jsonObjectLeft.has("Left")) {
if (jsonObjectLeft.getJSONArray("Left") != null &&
jsonObjectLeft.getJSONArray("Left").length() > 0) {
jsonArrayLeft.put(jsonObjectLeft);
jsonObject.put("12", jsonArrayLeft);
}
}
J'espère que cette réponse aidera quelqu'un à avoir ce type de problème. Dans mon nom JSONarray, l'espace entre guillemets, l'espace est considéré comme un caractère. c'est un peu le problème de l'API. meilleure demande pour supprimer l'espace sinon le développeur en souffrira.
"jobtype ": [
{
"id": "1006",
"name": "Apprenticeship"
}
]
LogCat: exception org.json.JSONException: Aucune valeur pour