【发布时间】:2021-08-13 07:31:40
【问题描述】:
问题
我有一个服务器-客户端 C# 程序,它带有一个 RestAPI,可以从我的服务器以 JSON 格式获取数据。现在我有一个问题,即客户端和服务器在软件更新后通常不在同一个版本上。服务器发送的数据比预期的要多,这些数据无法存储在我的类中,因此 newtonsoft 对象反序列化器会引发错误。错误:“找到端点节点”。
我服务器上的模型如下所示:
public class Settings : ISettings
{
public bool IsArchiveActive { get; set; } //This is new
public bool HasSQLStorage { get; set; }
public string AppKey { get; set; }
}
但在我的客户端,还没有更新:
public class Settings : ISettings
{
public bool HasSQLStorage { get; set; }
public string AppKey { get; set; }
}
我的方法,使对象去实体化:
protected async Task<T> Get<T>(string relativeAddress)
{
string responseBody = await Get(relativeAddress);
return JsonConvert.DeserializeObject<T>(responseBody);
}
问题 如何配置或解决此错误?如果它不在我的班级,我只是不会忽略这个属性。
它应该可以正常工作。 “找不到端点”似乎不是映射问题,而是与 API 的连接问题。 – 沉默w
我使用调试器工具多次测试我的项目,我可以看到该对象中有数据。如您所知,您可以在调试器中看到,那是在一个对象中。只有当我使用反序列化器转换它时才会弹出错误。我没有在 JsonConverter 上设置任何配置。
【问题讨论】:
-
它应该工作得很好。 “未找到端点”似乎不是映射问题,而是与 API 的连接问题。
-
您可以尝试将 IsArchiveActive 设置为可为空,但正如@silentw 所说,这应该不是问题
-
您遇到的错误与 JSON 序列化/反序列化没有任何关系。请在 在 Stack Overflow 上发布问题之前进行一些基本调试。
-
能否请edit 在您的帖子中包含异常的完整
ToString()输出,包括异常类型、消息、回溯和内部异常(如果有)?一个完整的minimal reproducible example 将是理想的,并最大限度地提高在这里获得帮助的机会。