Ich lade eine JSON-Zeichenfolge herunter und konvertiere sie in JSONArray. Ich stelle es in eine Listenansicht und muss es später aus dieser Listenansicht löschen können. Da JSONArray keine .remove-Methode hat (Danke Obama), versuche ich, es in eine Arrayliste umzuwandeln.
Hier ist mein JSON (das array.toString ()):
[{"thumb_url":"tb-1370913834.jpg","event_id":"15","count":"44","event_tagline":"this is a tagline","event_name":"5th birthday","event_end":"1370919600","event_start":"1370876400"}]
Ich muss es in ein Array bringen und in der Lage sein, die Zeichenfolgen über ihre jeweiligen Schlüssel aufzurufen. Schätzen Sie jede Hilfe!
android
android-listview
TheGeekNess
quelle
quelle
Antworten:
quelle
listdata.add(jArray.optJSONObject(i));
wenn Ihre Listendaten eine JSONObject-ArrayList sind.ArrayList<JSONObject> listdata = new ArrayList<JSONObject>();
ArrayList<Object>
?Ich habe es mit
Gson
(von Google) gemacht .Fügen Sie Ihrem Modul die folgende Zeile hinzu
build.gradle
:JSON
Zeichenfolge:ContactModel.java
::Code zum Konvertieren einer JSON-Zeichenfolge in
ArrayList<Model>
:Hinweis: Sie müssen importieren
java.lang.reflect.Type;
:Hoffe das wird dir helfen.
quelle
getAsJsonArray()
Methode also anscheinend. Danke dir!Versuchen Sie es auf diese Weise. Führen Sie einfach eine Schleife durch und erstellen Sie Ihr eigenes Array. Bei diesem Code wird davon ausgegangen, dass es sich um ein Array von Zeichenfolgen handelt. Es sollte nicht schwierig sein, diese an Ihre spezielle Array-Struktur anzupassen.
quelle
Anstatt die JSON-Zeichenfolge in eine ArrayList oder sogar eine Map zu konvertieren, können Sie einfach selbst ein JSONObject erstellen . Dieses Objekt kann nach Belieben Zeichenfolgenwerte per Schlüssel abrufen und Objekte entfernen .
Um eine
JSONObject
aus einer richtig formatierten JSON-Zeichenfolge zu erstellen , rufen Sie einfach den entsprechenden Konstruktor auf .quelle
Ich habe eine schnelle Lösung. Erstellen Sie einfach eine Datei
ArrayUtil.java
Verwendung:
oder
quelle
ArrayList<String>
JSONArray
in eine Liste einfügen wollte, damit ich dasList
in eineHashMap
einfügen konnte , also funktionierte dieses Util für mich ziemlich gut. Danke @Vasilii SuricovIn Java 8
quelle
List<String> listOfStrings = IntStream.range(0, array.length()).mapToObj(i -> { try { return array.getString(i); } catch (JSONException e) { throw new AssertionFailedError("JSONArray is not a list of Strings! " + e.getMessage()); } }).collect(Collectors.toList());
nicht mehr so elegant sind. Also werde ich mit einem foreach gehen :)quelle
Verwenden Sie POJO, um es praktisch zu machen.
versuche es so ..
quelle
Mit Gson
quelle
Wenn Sie Daten aus einem JSON-String-Array extrahieren möchten, finden Sie hier meinen Arbeitscode. Ändern Sie den Parameter als Ihre Daten.
PoJo-Klasse
Extrahieren Sie Ihre Daten mit der folgenden Codezeile
Sie erhalten eine Liste der PoJo-Klassenobjekte.
quelle
Java 8-Stil
quelle
quelle
Ich habe eine schnelle Lösung. Erstellen Sie einfach eine Datei
ArrayUtil.java
Verwendung:
oder
quelle
Generische Variante
quelle
@ vereinfacht
quelle
Gehen Sie einfach zum ursprünglichen Thema des Threads:
Konvertieren von Jsonarray in Liste (hier verwendet Jackson Jsonarray und Object Mapper):
quelle
Eine einfachere Java 8-Alternative:
quelle