我正在编写一个解析JSON的函数,可能会返回不同类型的对象。 比如说,我正在解析一只鸟json,想要返回一个鸟类对象,然后是一只老虎json,并希望得到一只老虎对象。
我该怎么做?我应该使用动态对象吗?而且,如果这是答案,怎么样?
我不想重写我希望从中得到的每种类型对象的逻辑。
提前致谢,
爱丽儿
答案 0 :(得分:1)
您使用的是JSON.NET吗?无论如何,泛型似乎是正确的答案。像这样:
public T CreateAnimal<T>(string json) {
return JsonConvert.DeserializeObject<T>(json);
}
请注意,为了使用它,您必须提前知道在json中期望的对象类型,因此您可以这样调用它:
Tiger t = CreateAnimal<Tiger>(tigerJson);
答案 1 :(得分:0)
为防止膨胀代码,您可以实例化动物对象convention-based:
Activator.CreateInstance("YourAssemblyNameContainingAnimalTypes", animalString);