以下是API的回复:
{"success":true,"data":[{"_id":"559276d1f21a16dc28f8cd67","name":"Businessman","__v":0}]}
所有服务器方法都以以下格式返回Json对象:
{ "success": "true/false", data: "object_array[]" }
或:
{ "success": "true/false", data: "single_object" }
所以我应该为响应提供一个C#对象,并且我需要为"数据"提供不同的对象类型。部分回应。 "数据"属性将是不同类型的数组,有时是单个对象。
是否有动态方式来处理这种情况,还是应该为每个响应定义不同的类型?
感谢。
答案 0 :(得分:1)
您可以使用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);
}