I / ERROR: com.android.volley.ParseError: org.json.JSONException: Value of type java.lang.String can not be converted to JSONObject

0

Error:

I/ERROR: com.android.volley.ParseError: org.json.JSONException: Value codigo of type java.lang.String cannot be converted to JSONObject

My code in Android Studio:

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment


        View vista = inflater.inflate(R.layout.fragment_consultar_curso_fragmento, container, false);

        campoCodigo = vista.findViewById(R.id.edit_codigo);
        campoNome = vista.findViewById(R.id.txt_nome);
        campoCategoria = vista.findViewById(R.id.txt_categoria);
        campoProfessor = vista.findViewById(R.id.txt_professor);
        botaoConsultar = vista.findViewById(R.id.btnConsultarCurso);
        imgFoto = vista.findViewById(R.id.imagemId);


        request = Volley.newRequestQueue(getContext());

        botaoConsultar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                carregarWEBService();
            }
        });

        return vista;
    }


    private void carregarWEBService() {

        progresso = new ProgressDialog(getContext());
        progresso.setMessage("Buscando...");
        progresso.show();
        String url = "http://192.168.x.xxx/webservices/consultar.php?codigo="+campoCodigo.getText().toString());


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

    }
    @Override
    public void onErrorResponse(VolleyError error) {
        progresso.hide();
        Toast.makeText(getContext(), "Não foi possível efetuar a consulta " +error.toString() , Toast.LENGTH_SHORT).show();
        Log.i("ERROR", error.toString());
    }

    @Override
    public void onResponse(JSONObject response) {
        progresso.hide();
        //Toast.makeText(getContext(), "Mensagem: "+response, Toast.LENGTH_SHORT).show();

        Curso tabCurso = new Curso();
        JSONArray json = response.optJSONArray("curso");
        JSONObject jsonObject = null;

        try {
            jsonObject = json.getJSONObject(0);
            tabCurso.setNome(jsonObject.optString("nome"));
            tabCurso.setProfessor(jsonObject.optString("professor"));
            tabCurso.setCategoria(jsonObject.optString("categoria"));
        }catch (JSONException e){
            e.printStackTrace();
        }

        campoNome.setText("Nome: " + tabCurso.getNome());
        campoCategoria.setText("Categoria: " + tabCurso.getCategoria());
        campoProfessor.setText("Professor: " + tabCurso.getProfessor());

    }

My PHP code

<?php

header('Content-type=application/json; charset=utf-8');

include "conexao.php";

$json = array();
//<!-- verifica se existe um código-->
if (isset($_GET["codigo"])){
    //recebe o código via get caso ele exista
    $codigo = ($_GET["codigo"]);
    //Variavel qe armazena a Query de consulta -- busca todos os campos que possue o código recebido
    $consulta = "SELECT codigo,nome,categoria,professor FROM curso WHERE codigo = '{$codigo}' ";
    //variavel que guarda o estado da execução do método mysqli_query(@param1 conexao, @param2 query)
    $resultado = mysqli_query($conexao,$consulta);
    //Verifica se recebeu o resultado
    if($registro = mysqli_fetch_array($resultado)){
        //armazena a lista recebida no array jason curso
        $json['curso'][] = $registro;
        //teste no browser
        //echo $registro['codigo']. ' - ' .$registro['nome']. ' - ' .$registro['categoria']. ' - ' .$registro['professor'];
    }else {//erro ao consultar
            $result["codigo"] = 0;
            $result["nome"] = 'Não registrado';
            $result["categoria"] = 'Não registrado';
            $result["professor"]= 'Não registrado'; 
            $json['curso'] = $result;//salva esse result caso os dados nao forem enviados
            mysqli_close($conexao);
            echo json_encode($json);//devolve o que foi salvo
    }
}else{//erro ao consultar
            $result["codigo"] = 0;
            $result["nome"] = 'Não registrado';
            $result["categoria"] = 'Não registrado';
            $result["professor"]= 'Não registrado'; 
            $json['curso'] = $result;//salva esse result caso os dados nao forem enviados
            mysqli_close($conexao);
            echo json_encode($json);//devolve o que foi salvo
    }
    
asked by anonymous 27.08.2018 / 00:03

0 answers