首页 文章

无法使用数组中的数组反序列化JSON

提问于
浏览
1

我应该如何在JSON下反序列化?

{
    "lastUpdateId": 131537317,
    "bids": [
        ["0.08400000", "0.54300000", []],
        ["0.08399800", "0.70800000", []],
        ["0.08399400", "1.22700000", []],
        ["0.08399300", "0.61700000", []],
        ["0.08399100", "0.35400000", []]
    ],
    "asks": [
        ["0.08408300", "0.09100000", []],
        ["0.08408400", "5.55300000", []],
        ["0.08408600", "0.71800000", []],
        ["0.08408900", "0.14500000", []],
        ["0.08409000", "0.15100000", []]
    ]
}

我使用下面的类 . AskBid 是一样的 .

Order deserializedProduct = JsonConvert.DeserializeObject<Order>(timeServer);

public class Order
{
    public int lastUpdateId { get; set; }

    public List<Bid> bids { get; set; }

    public List<Ask> asks { get; set; }
}

public class Bid
{
    public List<string> Items { get; set; }
}

我有错误:

无法将当前JSON数组(例如[1,2,3])反序列化为类型“WebApplication2.Models.Bid”,因为该类型需要JSON对象(例如{“name”:“value”})才能正确反序列化 . 要修复此错误,请将JSON更改为JSON对象(例如{“name”:“value”})或将反序列化类型更改为数组或实现集合接口的类型(例如ICollection,IList),例如List从JSON数组反序列化 . JsonArrayAttribute也可以添加到类型中以强制它从JSON数组反序列化 . 路径'出价[0]',第1行,第35位 .

1 回答

  • 1

    更好的代表你的JSON的类是:

    public class Order
    {
        public int lastUpdateId { get; set; }
        public List<List<object>> bids { get; set; }
        public List<List<object>> asks { get; set; }
    }
    

    正如@maccettura在他的评论中提到 BidsAsksIEnumerable<IEnumerable<string>>

    enter image description here

相关问题