我在Android设备上使用GSON。
我有JSON数据,但它可以以几个不同的对象的形式出现。
这就是我认为我需要处理它的方式。
public class Command
{
public String Command;
}
String json = {"Command":"Something", "date":"now"}
String command = gson.fromJson(message, Command.class);
然后打开命令
Switch(command)
{
case: something
//deserialize to "something" object;
break;
case: other somthing
//deserialize to "other somthing" object;
break;
case: object 3
//deserialize to "object 3" object;
break;
}
GSON是否有某种自动映射到最适合的对象,所以我不必创建一个自定义对象处理程序并对String进行两次deseraialize?
答案 0 :(得分:1)
我会使用
将其解析为一般的JsonObject JsonParser parser = new JsonParser();
JsonObject jsonObject = parser.parse(json).getAsJsonObject();
然后找到关于每个json模式的独特内容,然后根据使用
将其转换为bean的模式 gson.fromJson(jsonObject, AppropriateBean.class);
答案 1 :(得分:0)
我认为用户指南中涵盖了您尝试实现的example。请参阅有关Serializing and Deserializing Collection with Objects of Arbitrary Types的部分。他们建议使用底层的解析器API,然后使用fromGson
方法,因此您不必解析中间对象,这对我来说听起来不错。但是,您也可以尝试两种替代方案。