Wie kann ich mit moshi eine json Struktur analysiert, die Schlüssel, die unbekannt sind bei der Kompilierung hat: dieMoshi - Analysiert unbekannt json Schlüssel
"foo": {
"name": "hello",
"bar": {
"unknownKey1": {
"a": "1"
}
},
"unknownKey2": {
"b": "2"
},
"unknownKeyX": {
"c": "X"
}
},
"properties": {...}
}
Ich habe versucht, mit einem @FromJson
Adapter für JSONObject
aber die Protokolle nur sagen, dass json ist leer {}
class Foo {
@Json(name = "name")
String name;
@Json(name = "bar")
Bar bar;
static class Bar {
}
}
class BarAdapter {
@FromJson
Bar fromJson(JSONObject json) {
Log.d("xxx", "got " + json.toString());
return new Bar();
}
}
(wo ich {"unknownKey1": { ... etc ...}
erwarten würde) Wenn ich an der json innerhalb bar bekommen kann, kann ich es manuell durchlaufen, um eine Liste oder etwas hinzufügen (da ich nicht weiß, wie viele Artikel es wird____geben).
es wie folgt aus:
Moshi moshi = new Moshi.Builder()
.add(new BarAdapter())
.add(new LinkedHashMapConverter())
.build();
Ich musste auch die LinkedHashMapConverter
fügen Sie die moshi Götter zu besänftigen, aber das Hinzufügen Protokolle es werden seine Methoden nie aufgerufen (dies könnte ein anderes Thema mit meinem real json).
irgendwelche Ideen?
Sie können Objekt verwenden oder nicht? – ataulm
Objekt ist etwas Besonderes. Je nachdem, was der JSON hat, wird er in eine Map, List, Double, String oder Boolean konvertiert. –