我该如何使用Moshi解析一个具有编译时未知键的JSON结构?
我尝试使用
我还需要添加
"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();
}
}
一旦我可以获取bar内部的json,我就可以手动迭代它并将其添加到列表或其他地方(因为我不知道会有多少项)。
像这样使用:
Moshi moshi = new Moshi.Builder()
.add(new BarAdapter())
.add(new LinkedHashMapConverter())
.build();
我还需要添加
LinkedHashMapConverter
才能满足moshi的要求,但是在它上面加日志后,发现它的方法从未被调用过(这可能与我的实际json有关)。你有什么想法吗?