如何将Json反序列化为对象

如何将Json反序列化为对象,json,serialization,Json,Serialization,我在反序列化JSON对象时遇到问题。这是我的JSON: { "resource": [{ "ClienteNome": "DOUGLAS DA SILVA BENEDITO", "ClienteStatus": 0 }, { "ClienteNome": "MARCO AURELIO DE SÁ GONÇALVES", "ClienteStatus": 1 }, { "ClienteNome"

我在反序列化JSON对象时遇到问题。这是我的JSON:

{
    "resource": [{
        "ClienteNome": "DOUGLAS DA SILVA BENEDITO",
        "ClienteStatus": 0
    }, {
        "ClienteNome": "MARCO AURELIO DE SÁ GONÇALVES",
        "ClienteStatus": 1
    }, {
        "ClienteNome": "MATHEUS CELESTINO CANDIDO",
        "ClienteStatus": 2
    }]
}
我正试图以这种方式反序列化它

public static async Task<List<Model.ClientesOnline>> GetAsync()
{
     using (var client = new HttpClient())
     {
          client.DefaultRequestHeaders.Add("X-DreamFactory-Api-Key", "36fda24fe5588fa4285ac6c6c2fdfbdb6b64699774c9bf777f706d05a88");
          string json = await client.GetStringAsync("http://api-u16.cloudapp.net/api/v2/nova207/_table/vw_clientes_online");

          var clientesonline = JsonConvert.DeserializeObject<List<Model.ClientesOnline>>(json);
          return clientesonline;
     }
}
错误消息

无法将当前JSON数组(例如[1,2,3])反序列化为类型 'System.Collections.Generic.Dictionary'2[System.String,Linker.Class.Alternations]' 因为该类型需要一个JSON对象(例如{“name”:“value”})来 正确地反序列化。要修复此错误,请将JSON更改为 JSON对象(例如{“name”:“value”})或将反序列化类型更改为 实现集合接口的数组或类型(例如。 可以从JSON反序列化的类似ICollection(IList)的列表 数组。还可以将JsonArrayAttribute添加到类型中,以强制它 从JSON数组反序列化


我尝试了几种方法

您的模型是错误的,您需要的是一个对象而不是列表,这是模型应该喜欢的:

public class Resource
{
    public string ClienteNome { get; set; }
    public int ClienteStatus { get; set; }
}

public class ClientsOnline
{
    public List<Resource> resource { get; set; }
}
公共类资源
{
公共字符串客户端名称{get;set;}
公共int客户端状态{get;set;}
}
公共类ClientsOnline
{
公共列表资源{get;set;}
}
当您反序列化时,您应该执行以下操作:

var clientsOnline= JsonConvert.DeserializeObject<ClientesOnline>(json);
var clientsOnline=JsonConvert.DeserializeObject(json);

您必须更改模型类别。如果您不确定您的模型是否正确,请使用json2csharp进行检查。()
var clientsOnline= JsonConvert.DeserializeObject<ClientesOnline>(json);