Ich habe eine Android-App, die eine Zeichenfolge im JSON-Format empfängt.Dynamische Objekterzeugung aus JSON
Die JSON-Struktur enthält ein Array von JSON-Objekten unterschiedlicher Typen. Ich werde eine Klasse für jeden Typ erstellen und die Objekte direkt aus JSON mit Hilfe eines JSON-Framework instanziieren.
Um es einfacher zu machen, lassen Sie uns das folgende Beispiel denken:
Wir haben zwei Java-Klassen:
public class A
{
public String a1 = "";
public int a2 = 0;
}
public class B
{
public double b1 = 0;
public double b2 = 0;
public double b3 = 0;
}
noch z.B. wir haben ein JSON-Array
[
{
"a1": "Teststring",
"a2": 12
},
{
"b1": 3,
"b2": 4,
"b3": 5
},
{
"a1": "Teststring2",
"a2": 24
}
]
in den kommenden Ich weiß nicht, was, wie viele oder in welcher Reihenfolge die JSON-Objekte in kommen. Aber ich bin in der Lage, ihre JSON Darstellung zu ändern.
Eine Lösung, die ich denken kann:
Soweit ich aus der Lektüre über Frameworks verstanden, Jackson im Vergleich ist in der Lage zu Gson beides zu tun, bestimmte Werte lesen und Java-Instanzen zu erzeugen.
[
{
"type": "A",
"a1": "Teststring",
"a2": 12
},
{
"type": "B",
"b1": 3,
"b2": 4,
"b3": 5
},
{
"type": "A",
"a1": "Teststring2",
"a2": 24
}
]
als lies den Wert von Typ und dann das richtige Objekt aus, dass generieren: So konnte ich Typinformationen zu den JSON-Objekten hinzufügen.
Was halten Sie von meinem Ansatz? Gibt es eine gemeinsame Lösung für mein Problem?
Haben Sie eine Kontrolle über das JSON-Objekt gesendet? Ich meine, wenn es ein Server ist, der die JSON-Antworten sendet, kontrollierst du den Server oder läuft er bereits? – pahan
Ich kontrolliere den Server. – Programmer879
Dann, wie Sie sagten, erwähnen Sie den Typ des Objekts, das Sie im JSON-Objekt selbst senden. Es ist sicher und reduziert die Arbeitsbelastung auf der Client-Seite. – pahan