Json.Net 反序列化 JSON 对象



我已经弹出了一个返回 Json 波纹管的 Web 服务器,但我无法将其转换为对象。

杰森

{
    "success":true,
    "data":{
        "24486146360":{
            "rfid":"123465789456",
            "products":[
            {
                "sale_id":35,
                "quantity":2,
                "price":"1",
                "total":"2",
                "unit":"uni",
                "sku":14
            },
            {
                "sale_id":36,
                "quantity":2,
                "price":"2.5",
                "total":"5",
                "unit":"uni",
                "sku":17
            }
            ]
        },
        "24758345953":{
            "rfid":"2129",
            "products":[
            {
                "sale_id":39,
                "quantity":1,
                "price":"10",
                "total":"10",
                "unit":"ml",
                "sku":19998
            }
            ]
        },
        "64577015900":{
            "rfid":"1934",
            "products":[
            {
                "sale_id":40,
                "quantity":1,
                "price":"10",
                "total":"10",
                "unit":"ml",
                "sku":19998
            }
            ]
        },
        "56768990934":{
            "rfid":"1746",
            "products":[
            {
                "sale_id":46,
                "quantity":1,
                "price":"8.00",
                "total":"8",
                "unit":"UN",
                "sku":20
            }
            ]
        }
    }
}

我使用 json2sharp 从 JSON 生成一个类,然后我清理了该类,并留下以下内容:

我的类为 json2sharp 创建帮助

public class Consumo
{
    public string rfid { get; set; }
    public List<ConsumoProduto> products { get; set; }
}
public class ConsumoProduto
{
    public int sale_id { get; set; }
    public double quantity { get; set; }
    public string price { get; set; }
    public string total { get; set; }
    public string unit { get; set; }
    public int sku { get; set; }
}
public class RetornoConsumo
{
    [JsonProperty("success")]
    public bool Processado { get; set; }
    [JsonProperty("data")]
    public List<Consumo> Registro { get; set; }
}

我的问题

如何使用 Json.Net 将 JSON 转换为有效对象?

测试

我试图这样做,但我不能

Dictionary<string, RetornoConsumo> _featuredArticles = JsonConvert.DeserializeObject<Dictionary<string, RetornoConsumo>>(json);

RetornoConsumo类中,Registro属性需要是一个Dictionary<string, Consumo>而不是一个List<Consumo>

public class RetornoConsumo
{
    [JsonProperty("success")]
    public bool Processado { get; set; }
    [JsonProperty("data")]
    public Dictionary<string, Consumo> Registro { get; set; }
}

然后,您需要将 JSON 反序列化为 RetornoConsumo 类:

var data = JsonConvert.DeserializeObject<RetornoConsumo>(json);

小提琴:https://dotnetfiddle.net/vfhdXp

相关内容

  • 没有找到相关文章

最新更新