我想知道我的反序列化方法是否会导致任何问题。我一直在将API中的JSON响应读入类中以供将来参考,如下所示:
var response = await client.DeleteAsync(resource);
return await response.Content.ReadAsAsync<FolderResult>();
FolderResult是一个类。
class FolderResult
{
public string FolderId { get; set; }
public string message { get; set; }
}
}
我的问题是,有时API返回一组不同的JSON值,例如: JSON返回消息,路径,大小和权重,但我仍然将响应转换为FolderResult。当我从生成的FolderResult中调用message(我唯一需要的值)时,值是正确的。
我的问题是,这样做会遇到问题吗?或者我可以安全地解析我需要的内容并忽略额外的响应值吗?
答案 0 :(得分:2)
只要您的message
财产仍然存在,就不会有问题。虽然如果您只需要message
字符串,则可以使用JObject.SelectToken
var jsonString = await response.Content.ReadAsStringAsync();
var jObject = JObject.Parse(jsonString);
var message = (string)jObject.SelectToken("message");
答案 1 :(得分:1)
你应该没问题。它会工作。当返回的json中没有消息时,FolderResult中的消息字符串将设置为null。 api返回的有效负载中的所有其他json数据都将被忽略。