Erreur lors de l'analyse des données org.json.JSONException:
La valeur de type java.lang.String ne peut pas être convertie en JSONArray
JSONArray jsonArray = new JSONArray(result);
JSONArray ja= (JSONArray) jsonArray.get(0);
JSONObject jb = (JSONObject) ja.get(0);
//String firstvalue = jb.getString("0");
int secondvalue = jb.getInt("customer_id");
La sortie de Myjson devrait ressembler [[{"0":"2","customer_id":"2"}]]
Je suis jenerating la sortie en utilisant le php comme
$output[]= $customerid;
print(json_encode($output));
Réponses:
1 pour la réponse № 1Pour votre problème d'analyse, il a déjà répondu @
Comment appeler l'objet JSON sous Android
C'est une ficelle
String secondvalue = jb.getString("CUSTOMER_ID");
try
{
int value = Integer.parseInt("secondvalue");
Log.i("Customer id",""+value);
}catch(NumberFormatException e)
{
e.printStackTrace();
}
Modifier:
String myjson = "["
+"["
+"{"
+ " "0": "2","
+ ""CUSTOMER_ID": "2""
+ "}"
+ "]"
+ "]";
Analyse
try {
JSONArray jsonArray = new JSONArray(myjson);
JSONArray ja= (JSONArray) jsonArray.get(0);
JSONObject jb = (JSONObject) ja.get(0);
String firstvalue = jb.getString("0");
String secondvalue = jb.getString("CUSTOMER_ID");
int value = Integer.parseInt(secondvalue);
Log.i("Customer id",""+value);
Log.i("first value is",firstvalue);
Log.i("second value is",secondvalue);
}catch(NumberFormatException e)
{
e.printStackTrace();
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
0 pour la réponse № 2
Cela signifie simplement que la chaîne (par exemple une chaîne) que vous avez donnée en entrée du new JSONArray(some_string)
ne peut pas être converti en tableau JSON car la chaîne ne suit pas le format de tableau json requis. Un exemple de chaîne JSON Array appropriée est donné ci-dessous
[{ "title": "title_1", "nom": "nom_1"}, { "titre": "titre_2", "nom": "nom_2"}]