下面是来自API的响应:
{"success":true,"data":[{"_id":"559276d1f21a16dc28f8cd67","name":"Businessman","__v":0}]}
所有的服务器方法返回一个Json对象,格式为:
{ "success": "true/false", data: "object_array[]" }
或:
{ "success": "true/false", data: "single_object" }
所以我应该有一个c#对象的响应,我也需要有不同的对象类型的"数据"部分的响应。"data"属性可以是不同类型的数组,有时也可以是单个对象。
是否有一个动态的方法来处理这个场景,或者我应该为每个响应定义不同的类型?
谢谢。
可以使用dynamic
关键字
dynamic jObj = JObject.Parse(json);
Console.WriteLine(jObj.success);
if(jObj.data is JArray)
{
Console.WriteLine(jObj.data[0].name);
}
if (jObj.data is JObject)
{
Console.WriteLine(jObj.data.name);
}