将属性反序列化为C#的值

时间:2019-01-04 16:58:55

标签: c# .net json

您不能为类c撤消以下json代码。#属性不是名称,是增量代码或标识符。

服务器结果。

{
    "success": 0,
    "persona": {
        "1000": {
            "nombre": "Nombre 1",
            "apellido": "Apellido 1",
            "edad": 18
        },
        "1001": {
            "nombre": "Nombre 2",
            "apellido": "Apellido 2",
            "edad": 18
        }
    }
}

服务器响应可以转换为下一个有效格式。

{
    "success": 0,
    "persona": [
        {
            "id": "1000",
            "nombre": "Nombre 1",
            "apellido": "Apellido 1",
            "edad": 18
        },
        {
            "id": "1001",
            "nombre": "Nombre 2",
            "apellido": "Apellido 2",
            "edad": 18
        }
    ]
}

1 个答案:

答案 0 :(得分:0)

您可以将“角色”属性反序列化为字典。 C#类如下所示:

public class Response 
{
    public int Success { get; set; }
    public Dictionary<int, Persona> Persona { get; set; }
}

public class Persona
{
    public string Nombre { get; set; }
    public string Apellido { get; set; }
    public int Edad { get; set; }
}

使用Json.net进行反序列化:

var response = JsonConvert.DeserializeObject<Response>(json);