com.android.volley.ParseError: org.json.JSONException: End of input at character 0 of

wer112

Top Contributor
In mein Ladebildschirm, werden Daten per Volley aus der Datenbank(PDO Verbindung) rausgeholt.
Diese wird in ein JsonArray gepackt.

Die ganzen letzten Tagen hat alles super funktioniert. Bis ich im Ladebildschirm festsitze. Ich habe am Code im Ladebildschirm nixs mehr geändert gehabt.

Aber heute taucht die oben im Thema Titel Fehler Meldung auf.

Habe auch schon in stackoverflow nach ne Lösung gesucht, was nicht klappte mit dem parseNetwork Zeug.

Da es auch so die ganzen Tage ging, weiß ich nicht, wiso es auftauchte und was ich evtl. machen muss.

Habe ganze Zeit z.B.: JsonArray test1 = null; stehen.

Ich hoffe ihr kennt das Problem und könnt mir helfen.

Ich danke euch schonmal =)
 

Jw456

Top Contributor
Die Fehlermeldung sagt ja das es beim Parsen einen Fehler gibt. Entweder Array zu klein und im Jason sind zufiel Einträge. Ohne Code kann nicht viel sagen.

Wenn es wirklich immer ging und jetzt nicht mehr wirst du doch etwas geändert haben vielleicht nicht in deiner App aber auf dem Server, DB , Backend …

In Bezug zu deinen anderen Thread denke ich das du da schon rumgefummelt hast.
Weißt du auch, Wie ich ein JsonArray per Intent an eine andere Activity übergeben kann, damit ich es in ein String Array packe?

Json ist doch ein String übergib ihn doch als solchen im Bundle und parse ihn in der neuen Activity wider.

Übergabe eines Array im Bundle etwa so .
Java:
 String[] obst = {"Apfel", "Birne", "Banane"};

        Intent intent = new Intent(this, SecondActivity.class);
        Bundle bundle = new Bundle();
        bundle.putStringArray("Key_Array",obst );
        intent.putExtras(bundle);
        startActivity(intent);

    // Activity2
        Bundle bundle = getIntent().getExtras();
        String[]  obst  = bundle.getStringArray("key_Array");
 

wer112

Top Contributor
Die Fehlermeldung sagt ja das es beim Parsen einen Fehler gibt. Entweder Array zu klein und im Jason sind zufiel Einträge. Ohne Code kann nicht viel sagen.

Wenn es wirklich immer ging und jetzt nicht mehr wirst du doch etwas geändert haben vielleicht nicht in deiner App aber auf dem Server, DB , Backend …

In Bezug zu deinen anderen Thread denke ich das du da schon rumgefummelt hast.


Json ist doch ein String übergib ihn doch als solchen im Bundle und parse ihn in der neuen Activity wider.

Übergabe eines Array im Bundle etwa so .
Java:
 String[] obst = {"Apfel", "Birne", "Banane"};

        Intent intent = new Intent(this, SecondActivity.class);
        Bundle bundle = new Bundle();
        bundle.putStringArray("Key_Array",obst );
        intent.putExtras(bundle);
        startActivity(intent);

    // Activity2
        Bundle bundle = getIntent().getExtras();
        String[]  obst  = bundle.getStringArray("key_Array");
1. geht das auch mit JsonArray z.B.: JsonArray obst = ["Apfel", "Birne", "Banane"]; ?
Da Volley den Json Response in ein JsonArray haben möchte.

Mit Bundel habe ich das schon gelesen in stackoverflow.
Die App ist bei mir abgestürtzt.

Muss ja mehrere JsonArrays übergeben und nicht nur eins.
Müsste man da mehrere Bundels erzeugen:

Intent intent = new Intent(this, SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putStringArray("Key_Array",obst );
Bundle bundel2 = new Bundle();
bundel2.putStringArray("key2", preis);
Bundle bundel3 = new Bundle();
bundel3.putStringArray("key3", sorte);
intent.putExtras(bundle);
startActivity(intent);

Und kann ich einfach ein JsonArray als putStringArray setzten oder muss ich das erst irgendwie umwandeln?

2. Wenn ich ein Boolean habe und ich mit intent.putBoolen übergebe, warum muss ich noch zuzätzlich einen Wert definieren, obwohl der Wert schon feststeht?
 

Jw456

Top Contributor
1. geht das auch mit JsonArray z.B.: JsonArray obst = ["Apfel", "Birne", "Banane"]; ?
Da Volley den Json Response in ein JsonArray haben möchte.
Nein
JSONArray ist ein Interface von einen Json Objekt.
Dafür gibt es in Bundle keine Serialisierung.
Du Kannst das Array in einen JsonString konvertieren diesen übergeben und in der neuen Activity wieder in ein JSONArray parsen.

Muss ja mehrere JsonArrays übergeben und nicht nur eins.
Müsste man da mehrere Bundels erzeugen:
Nein
nur mehre Keys dem Bundle hinzufügen.
putString(String key, String value) // value ist das serialisierte JsonArray als String
 

Jw456

Top Contributor
2. Wenn ich ein Boolean habe und ich mit intent.putBoolen übergebe, warum muss ich noch zuzätzlich einen Wert definieren, obwohl der Wert schon feststeht?
erstens "Intent.putBoolen" gibt es nicht. Auch nicht "Intent.putBoolean"
Im Objekt Bundle gibt es die Methode putBoolean(String key, boolean value)
Bundle das sind immer Key, Value Paare mit dem Key kannst du das Value ansprechen und wider lesen.
 

wer112

Top Contributor
erstens "Intent.putBoolen" gibt es nicht. Auch nicht "Intent.putBoolean"
Im Objekt Bundle gibt es die Methode putBoolean(String key, boolean value)
Bundle das sind immer Key, Value Paare mit dem Key kannst du das Value ansprechen und wider lesen.
habe nachgesehen, hat Extra nur: intent.putExtra("Key", boolean);
Aber beim zurück entpacken kam das:
b1 = i.getExtras().getBoolean("b1");
b2 = i.getExtras().getBoolean("b2");
b3 = i.getExtras().getBoolean("b3");
da stürtzt die App ab, da ich einen neuen Wert definieren muss, obwohl ich bei Put Extra den Wert ja definiert habe.

warum muss ich: b1 = i.getExtras().getBoolean("b1", false); machen, wenn ich ja bei putExtra den Key und den Zustand übermittelt habe?
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben