ОШИБКА: org.json. JSONException: Оцените … of type java.lang. String cannot be converted to JSONArray

У меня есть эта ошибка:

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.

introducir la descripción de la imagen aquí

С этим изображением я хочу сообщить, что он увеличился 1 в getSelectedItemPosition для того, чтобы он смог брать стоимость 1, 2, 3....


Это код в PHP:

";    
  }

 ?>

4
задан 25.11.2016, 04:54
2 ответа

Ты должен анализировать ответ, к которому ты относишься конвертирования JsonArray:

  JSONArray array = new JSONArray(response);

Проверяет ответ и в зависимости от этого он помнит, что ответ.Json может быть двух типов:

- Если .json инициализируется с {, считается объектом Json.

- Если .json инициализируется с [, считается Договоренностью Json.

Из-за ошибки, полученной, как кажется, ответа (response) нет в действительности один JSONArray.

2
ответ дан 24.11.2019, 12:26
  • 1
    Друг, я буду издавать мой post agregá ndole мой php, ты agradecerí во многий, который ты проверишь снова пожалуйста, я предполагаю, что мой json está хорошо, потому что está с []. – Jorge Requez 24.11.2016, 22:34

Уже 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;
0
ответ дан 24.11.2019, 12:26