У меня есть эта ошибка:
org.json. JSONException: Оцените i201600010 of type java.lang. String cannot be converted to JSONArray
Мой код - следующий:
@Override
public void onClick(View view) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
final String resultado = enviarDatos(String.valueOf(asignatura.getSelectedItemPosition()+1),
String.valueOf(seccion.getSelectedItemPosition()+1),
String.valueOf(grupo.getSelectedItemPosition()+1));
runOnUiThread(new Runnable() {
@Override
public void run() {
int r = obtenerJSON(resultado);
if(r>0){
Toast.makeText(PreIngresoNotas.this, "CORRECTO", Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(PreIngresoNotas.this, "Ha fallado", Toast.LENGTH_SHORT).show();
}
}
});
}
});
thread.start();
}
public String enviarDatos(String cur, String sec, String gru){
String linea = "";
StringBuilder sb = null;
int respuesta = 0;
try{
URL url = new URL("http://192.168.1.55/proyecto/listalumno.php?curso="+cur+"&seccion="+sec+"&grupo="+gru);
HttpURLConnection conexion = (HttpURLConnection) url.openConnection();
respuesta = conexion.getResponseCode();
sb = new StringBuilder();
if(respuesta==HttpURLConnection.HTTP_OK){
InputStream inputStream = new BufferedInputStream(conexion.getInputStream());
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
while ((linea = bufferedReader.readLine())!=null){
sb.append(linea + "\n");
}
inputStream.close();
}
}catch (Exception e){
e.printStackTrace();
}
return sb.toString();
}
public int obtenerJSON(String response){
int res = 0;
try {
JSONArray array = new JSONArray(response);
if(array.length()>0){
res = 1;
}
/*for (int i=0;i
Ошибка очевидно приводит меня в метод ObtenerJSON
.
В части трэда, я не знаю, приношу ли я пользу следующее, если плохая эта часть, он был бы благодарен за то, чтобы они исправили меня, например в
asignatura.getSelectedItemPosition()+1
переменная asignatura
это spinner, и я помещаю getSelectedItemPosition()
чтобы получать положение элемента spinner в момент кликания в кнопку, и он увеличился 1, так как он это захватывает элементы с 0.
Разберутся лучше в следующем изображении, которое мне бросает мой PHP. Хотя я предполагаю, что он хорошо, потому что в моей ошибке он показывает меня "i201600010"
стоимость которого - поле таблицы моего MySQL.
С этим изображением я хочу сообщить, что он увеличился 1 в getSelectedItemPosition
для того, чтобы он смог брать стоимость 1, 2, 3....
Это код в PHP:
";
}
?>
Ты должен анализировать ответ, к которому ты относишься конвертирования JsonArray:
JSONArray array = new JSONArray(response);
Проверяет ответ и в зависимости от этого он помнит, что ответ.Json может быть двух типов:
- Если .json инициализируется с
{
, считается объектом Json.- Если .json инициализируется с
[
, считается Договоренностью Json.
Из-за ошибки, полученной, как кажется, ответа (response) нет в действительности один JSONArray
.
Уже encontrГ© она soluciГіn, aГ±adГ - это в мой php.
Спасибо за помощь.
while($fila = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$idalu = $fila["idalu"];
$usuario = $fila["usuario"];
$contra = $fila["contra"];
$nombre = $fila["nombre"];
$apellido = $fila["apellido"];
$idcurso = $fila["idcurso"];
$idsec = $fila["idsec"];
$idgru = $fila["idgru"];
$alumnos[] = array("id" => $idalu, "usuario" => $usuario, "ocontra" => $contra,
"nombre" => $nombre, "apellido" => $apellido, "idcurso" => $idcurso,
"idsec" => $idsec, "idgru" => $idgru);
}
$json = json_encode($alumnos);
echo $json;