コンパイル時に不明なキーを持つ json 構造を moshi で解析するにはどうすればよいですか。
"foo": {
"name": "hello",
"bar": {
"unknownKey1": {
"a": "1"
}
},
"unknownKey2": {
"b": "2"
},
"unknownKeyX": {
"c": "X"
}
},
"properties": {...}
}
@FromJson
のアダプターを使用してみましJSONObject
たが、ログにはjsonが空であるとだけ表示されます{}
(私が期待する場所{"unknownKey1": { ... etc ...}
)
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();
}
}
バー内の json にたどり着いたら、それを手動で反復してリストなどに追加できます (アイテムがいくつあるか分からないため)。
次のように使用します。
Moshi moshi = new Moshi.Builder()
.add(new BarAdapter())
.add(new LinkedHashMapConverter())
.build();
LinkedHashMapConverter
モシの神々をなだめるために も追加する必要がありましたが、ログを追加すると、そのメソッドは呼び出されません (これは、実際の json とは別の問題である可能性があります)。
何か案は?