我有一个看起来像这样的JSON:
{
"code": 200,
"results": [
{
"_id": "210574931",
"smcp": "139475012",
"AABCD": {},
"ABCXDEF": {},
"ABCD": {},
"ABCDEF": {},
"ASDF": {}
}
]
}
ABCD键是动态的,其余是静态的。如何正确读取动态键/值?
对于静态的,我一直在使用@SerializedName(“ code”)注释,它可以工作。我做了一些搜索,看来我可以做这样的事情:
Type mapType = new TypeToken<Map<String, ABCD> >() {}.getType(); // ABCD is sample class to store "AABCD", "ABCXDEF", etc...
Gson gson = new Gson();
Map<String, PmcPrice.Locale> result = gson.fromJson(json, mapType);
但是失败了,因为不是我所有的JSON都是ABCD对象。有静态字段,例如“代码”,“ _ id”,“ smcp”
这是我得到的例外:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was NUMBER at line 2 column 14 path $.
如何使用部分静态字段和动态键处理JSON?
谢谢。