Как я могу проанализировать базу данных, используя json? - PullRequest
0 голосов
/ 09 января 2020

У меня небольшая проблема с парсингом json. Я не могу показать информацию из базы данных, используя json. Ошибка выглядит так:

W/System.err: org.json.JSONException: No value for Cars
        at org.json.JSONObject.get(JSONObject.java:355)
        at org.json.JSONObject.getJSONArray(JSONObject.java:549)
        at com.hfad.zpi.Opis_urzadzenia$2.onResponse(Opis_urzadzenia.java:87)
        at com.hfad.zpi.Opis_urzadzenia$2.onResponse(Opis_urzadzenia.java:80)
        at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:90)
        at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:102)
        at android.os.Handler.handleCallback(Handler.java:733)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5017)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
        at dalvik.system.NativeStart.main(Native Method)

Json код выглядит так (json создан кодом php, который был протестирован в приложении в python и работает):

{"0{"CarDescription":"Dostawczy","CarMake":"Renault","LiPlateNr":"999","IdCars":"1","CarDescription":"Dostawczy","CarColor":"Zielony","CarEngine":"3","CarModel":Clio"}}

И java Код выглядит так:

 public class Opis_urzadzenia extends AppCompatActivity {
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_opis_urzadzenia);


        Button buttonParse = findViewById(R.id.parseButton);
        TextView textView = findViewById(R.id.text_view_results);


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


    }



    private void jsonParse(){
        String url = "http://zpigroup7.cba.pl/project/SQL_Query.php";

        final Map<String,String> params = new HashMap();
        params.put("Query", "SELECT");
        params.put("GET", "*");
        params.put("FROM", "Cars");


        final JSONObject json= new JSONObject(params);
        JSONArray jsonArray = new JSONArray();





        JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, json, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {

                try {

                    //Tu jest błąd , nie może odszukać wartości jaką jest Cars
                    JSONArray jsonArray = response.getJSONArray("Cars");

                    for (int i = 0; i < jsonArray.length(); i++){
                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                        String carmake = jsonObject.getString("CarMake");
                        String cardescription = jsonObject.getString("CarDescription");
                        int liplatenr = jsonObject.getInt("LiPlateNr");
                        String carcolor = jsonObject.getString("CarColor");
                        int carengine = jsonObject.getInt("CarEngine");
                        String carmodel = jsonObject.getString("CarModel");
                        textView.append(carmake +" " + cardescription +" " + liplatenr +" " + carcolor +" " + carengine +" " + carmodel +" " );
                        textView.append("\n\n");
                    }
                } catch (JSONException e){
                    e.printStackTrace();
                }

            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Toast.makeText(getApplicationContext(), error.toString(), Toast.LENGTH_SHORT).show();
            }
        });
        jsonArray.put(json);
        Volley.newRequestQueue(this).add(request);
    }

    public void ClickWroc(View view) {
        this.finish();
    }


}

Я не знаю, как я могу определить имя таблицы Cars, когда я не получаю его в json. Я новичок в программировании, поэтому, пожалуйста, прости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...