无法使用 Json.Net 将某些 json 属性反序列化为 C# 属性



我正在使用这个框架 https://github.com/trydis/FIFA-Ultimate-Team-2014-Toolkit 它为我提出了一些请求,但是在服务器更新后一种方法不再有效

Task<Item> GetItemAsync(long resourceId);

这会尝试使用

internal class ItemRequest : FutRequestBase, IFutRequest<Item>
{
    private readonly long _baseId;
    public ItemRequest(long resourceId)
    {
        _baseId = resourceId.CalculateBaseId();
    }
    public async Task<Item> PerformRequestAsync()
    {
        AddUserAgent();
        AddAcceptHeader("*/*");
        AddReferrerHeader(Resources.BaseShowoff);
        AddAcceptEncodingHeader();
        AddAcceptLanguageHeader();
        var itemResponseMessage = await HttpClient
            .GetAsync(string.Format(Resources.Item, _baseId))
            .ConfigureAwait(false);
        var itemWrapper = await Deserialize<ItemWrapper>(itemResponseMessage);
        return itemWrapper.Item;
    }
}

这尝试反序列化

var itemWrapper = await Deserialize<ItemWrapper>(itemResponseMessage);

ItemWrapper.cs 是

public class ItemWrapper
{
   public Item Item { get; set; }
}

项目.cs是 https://github.com/trydis/FIFA-Ultimate-Team-2014-Toolkit/blob/master/UltimateTeam.Toolkit/Models/Item.cs?source=cc

我添加到项目.cs

public string Desc {get;set;}

我得到的错误是

"在类型为"项目"的对象上找不到成员'Desc'。路径 'Item.Desc',第 1 行,位置 16。

当它尝试反序列化此内容时

"{\"物品":{\"Desc\":\"员工金稀有",\"评级":\"90",\"稀有":\"1",\"青铜":\"24","银":\"24","金":

\"28","物品类型":"合同员工"}}"

我不明白为什么它不会将Desc映射到我的Item.Desc属性

从错误消息来看,听起来像是您将Desc添加到ItemWrapper而不是Item。但是您的 JSon 将其作为项目的一部分。将 Desc 移动到项 C# 类,它应该可以工作。

相关内容

  • 没有找到相关文章

最新更新