我正在编写C#来与第三方API接口.我在将一个特定的响应映射到一个类时遇到了问题.
该方法的doco说,响应将是:
{
<text>:[{ /* driver ID */
"t":<uint>, /* time of binding/unbinding*/
"u":<long> /* unit ID if binding, 0 if unbinding */
}],
...
}
回答的例子是:{"2534":[{"t":1711353044,"u":10568}]}
.
我定义了响应类和子类:
public class GetDriverBindingsResponse : IWialonApiRequestObject
{
/// <summary>
/// Collection of bindings. The key is a Driver Id
/// </summary>
[JsonPropertyName("")]
public Dictionary<string, List<DriverUnitBinding>>? Bindings { get; set; }
}
public class DriverUnitBinding
{
/// <summary>
/// time of binding/unbinding
/// </summary>
[JsonPropertyName("t")]
public uint Time { get; set; }
/// <summary>
/// unit ID if binding, 0 if unbinding
/// </summary>
[JsonPropertyName("u")]
public long UnitId { get; set; }
}
但是,在进行重命名时,绑定集合为null.即使是简单的测试也会失败:
string test = "{\"2534\":[{\"t\":1711353044,\"u\":10568}]}";
GetDriverBindingsResponse? x = JsonSerializer.Deserialize<GetDriverBindingsResponse>(test);
Console.WriteLine(x.Bindings?.Count);
我需要更改什么才能正确地反序列化这个类?