Błąd podczas analizowania danych org.json.JSONException:
Wartości typu java.lang.String nie można przekonwertować na 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");
Wyjście Myjsona powinno się podobać [[{"0":"2","customer_id":"2"}]]
Inering wyjście przy użyciu php jak
$output[]= $customerid;
print(json_encode($output));
Odpowiedzi:
1 dla odpowiedzi № 1Na twój problem z parsowaniem już odpowiedział @
Jak wywołać obiekt JSON w systemie Android
To jest struna
String secondvalue = jb.getString("CUSTOMER_ID");
try
{
int value = Integer.parseInt("secondvalue");
Log.i("Customer id",""+value);
}catch(NumberFormatException e)
{
e.printStackTrace();
}
Edytować:
String myjson = "["
+"["
+"{"
+ " "0": "2","
+ ""CUSTOMER_ID": "2""
+ "}"
+ "]"
+ "]";
Rozbiór gramatyczny zdania
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 dla odpowiedzi nr 2
Oznacza to po prostu, że Łańcuch (powiedzmy jakiś ciąg) podany jako dane wejściowe do new JSONArray(some_string)
nie można przekonwertować na tablicę JSON, ponieważ łańcuch nie jest zgodny z wymaganym formatem tablicy Json. Przykład prawidłowego ciągu tablicy JSON podano poniżej
[{ „tytuł”: „tytuł_1”, „name”: „name_1”}, { „title”: „title_2”, „name”: „name_2”}]