Как исправить «JSONException» в Android-приложении APP с помощью службы PHP и залпа - PullRequest
0 голосов
/ 17 мая 2019

Я делаю приложение в Android Studio с PHP, MySQL и JSON

У меня есть 2 дня, чтобы решить эту проблему, но у меня ничего не получается.

У меня проблема в том, что если я вызываю json определенным образом, все работает отлично, но если я изменяю его и пытаюсь сделать тот же метод, но более определенным образом, больше ничего не отображается.

Я использую фрагменты, класс, виды переработчика, адаптеры и залп

Во-первых, это мой OnCreateView

I получает переменную " departa " из другого действия

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_panel, container, false);

    listaDatos = new ArrayList<>();

    recyclerDatos = (RecyclerView) view.findViewById(R.id.idRecyclerView);

    recyclerDatos.setLayoutManager(new LinearLayoutManager(this.getContext()));
    recyclerDatos.setHasFixedSize(true);

    reportesAdapter adapter = new reportesAdapter(listaDatos);
    recyclerDatos.setAdapter(adapter);

    request = Volley.newRequestQueue(getContext());


    pedirWebService();

    departa = getActivity().getIntent().getExtras().getString("key_id");

    //Just for debug
    Toast.makeText(getContext(), "Variable; "+departa, Toast.LENGTH_LONG).show();


    //listar = (ListView) view.findViewById(R.id.listDatos);


    return view;
}

Код pedirWebService ();

private void pedirWebService() {

    String url = "http://alertin.gearhostpreview.com/DB/listaReportesAplicacion.php?depto="+departa;

    jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,url,null,this,this);
    request.add(jsonObjectRequest);
}

Ответ от JSON

public void onResponse(JSONObject response) {

    //Datos datos = null;
    Datos datos = new Datos();


    JSONArray jsonArray = response.optJSONArray("usuario");
    //JSONArray jsonArray = new JSONArray("usuario");
    JSONObject jsonObject = null;


    try {

        for (int i=0; i<jsonArray.length();i++){


            jsonObject = jsonArray.getJSONObject(i);

            datos.setId(jsonObject.optString("id"));
            datos.setTitulo(jsonObject.optString("titulo"));
            datos.setReporte(jsonObject.optString("texto"));
            datos.setDepartamento(jsonObject.optString("id_depto"));
            datos.setZona(jsonObject.optString("id_zona"));

            listaDatos.add(datos);

        }


        //reportesAdapter adapter = new reportesAdapter(listaDatos);
       // recyclerDatos.setAdapter(adapter);




    }catch (JSONException e) {
        e.printStackTrace();
        Toast.makeText(getContext(), "No se pudo consultar" + response.toString(), Toast.LENGTH_SHORT).show();
        Log.e("Log_tag", "Error parsing data"+ e.toString());
        progress.hide();

    }




}

и, наконец, мой PHP-код, чтобы получить JSON

  include 'conexion.php';

$depto = $_REQUEST['depto'];

$datos=array();
$sql = "SELECT * FROM reportes where id_depto = '$depto'";

$res =  $con->query($sql);

foreach ($res as $row) {
    $datos['usuario'][] = $row;

}

echo json_encode($datos);

в IDE я не получаю никаких ошибок только JSONException, чтобы помочь немного больше это должно получить от json.

Ошибка в приложении

...