如何用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();
}
}
一旦我可以进入酒吧内的json,我可以手动迭代它以添加到列表或其他内容(因为我不知道会有多少项目。)
像这样使用它:
Moshi moshi = new Moshi.Builder()
.add(new BarAdapter())
.add(new LinkedHashMapConverter())
.build();
我还必须添加LinkedHashMapConverter
来安抚moshi神,但是添加日志,它的方法永远不会被调用(这可能是我真正的json的一个单独的问题)。
任何想法?
答案 0 :(得分:5)
使用地图。
<div class="col-lg-9 col-md-9 col-sm-9 col-xs-9">
<input type="text" class="form-control" id="memberEmergencyContact" name="emergencyContactName" placeholder="Entrer le contact en cas d'urgence">
</div>
如果您还不知道地图值的类型,则无法使用对象。