online jsonconvert deserialize array c# json deserialization

deserialize - jsonconvert c#



¿Cómo deserializar una matriz JSON utilizando Newtonsoft.Json? (4)

A partir de su código y sampeles JSON, parece que el problema es que en realidad está deserializando una List<Example> lugar de un solo Example .

Haría dos cosas:

  1. Haga que su clase siga las convenciones de nombres de .NET, ya que los prefijó con los atributos de JsonProperty adecuados:

    public class Example { [JsonProperty("receiver_tax_id")] public string ReceiverTaxId { get; set; } [JsonProperty("total")] public string Total { get; set; } [JsonProperty("receiver_company_name")] public string ReceiverCompanyName { get; set; } [JsonProperty("receiver_email")] public string ReceiverEmail { get; set; } [JsonProperty("status")] public int Status{ get; set; } }

  2. Deserialice una List<Example> utilizando la JsonConvert.DeserializeObject<T> genérica JsonConvert.DeserializeObject<T> lugar de la versión no genérica que está utilizando actualmente:

    var des = JsonConvert.DeserializeObject<List<Example>>(responseString); Console.WriteLine(des[0].Status);

[ { "receiver_tax_id":"1002", "total":"6949,15", "receiver_company_name":"Das Company", "receiver_email":"[email protected]", "status":0 }, { "receiver_tax_id":"1001", "total":"39222,49", "receiver_company_name":"SAD company", "receiver_email":"[email protected]", "status":1 } ]

Hola, estos son mis datos de Json, pero no puedo deserializarlos. Quiero verificar solo el valor de "estado". (primer objeto "estado" 0, segundo objeto "estado" 1).

Definición de ejemplo:

public class Example { [JsonProperty("receiver_tax_id")] public string receiver_tax_id { get; set; } [JsonProperty("total")] public string total { get; set; } [JsonProperty("receiver_company_name")] public string receiver_company_name { get; set; } [JsonProperty("receiver_email")] public string receiver_email { get; set; } [JsonProperty("status")] public int status { get; set; } }

Código de deserialización:

var des = (Example)JsonConvert.DeserializeObject(responseString, typeof(Example)); Console.WriteLine(des.status[0].ToString());


Estás intentando deserializar una matriz en un objeto de Ejemplo. Intenta hacerlo en una lista en su lugar:

var des = JsonConvert.DeserializeObject(responseString, typeof(List<Example>)) as List<Example>;


Prueba este código:

public class Receiver { public string receiver_tax_id { get; set;} public string total { get; set;} public string receiver_company_name { get; set;} public int status { get; set;} }

Y deserializar se ve como sigue:

var result = JsonConvert.DeserializeObject<List<Receiver>>(responseString); var status = result[0].status;


Si solo le interesa verificar el status , puede usar el tipo dynamic de .NET ( https://msdn.microsoft.com/en-us/library/dd264741.aspx )

dynamic deserialized = JObject.Parse(responseString); int status1 = deserialized[0].status; int status2 = deserialized[1].status; // // do whatever

De esta manera ni siquiera necesitas la clase Example .