Carregar o texto JSON no objecto da classe em c#
{ "err_code": "0", "org": "CGK", "des": "SIN", "flight_date": "20120719",
"schedule":
[
["W2-888","20120719","20120719","1200","1600","03h00m","737-200","0",[["K","9"],["F","9"],["L","9"],["M","9"],["N","9"],["P","9"],["C","9"],["O","9"]]],
["W2-999","20120719","20120719","1800","2000","01h00m","MD-83","0",[["K","9"],["L","9"],["M","9"],["N","9"]]]
] }
4 answers
public class MyFlightDto
{
public string err_code { get; set; }
public string org { get; set; }
public string flight_date { get; set; }
// Fill the missing properties for your data
}
Usando o Newtonsoft JSON serializer to Deserialize uma cadeia de caracteres json para o seu objecto de classe correspondente.
var jsonInput = "{ org:'myOrg',des:'hello'}";
MyFlightDto flight = Newtonsoft.Json.JsonConvert.DeserializeObject<MyFlightDto>(jsonInput);
Ou usar JavaScriptSerializer
para convertê-lo para uma classe ( Não recomendado como o serializador newtonsoft json parece ter um melhor desempenho ).
string jsonInput="have your valid json input here"; //
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
Customer objCustomer = jsonSerializer.Deserialize<Customer >(jsonInput)
Assumindo que queres convertê-lo numa instância de classe. A sua classe deve ser semelhante à estrutura JSON
(Propriedades)
Recomendo que use JSON.NET
. é uma biblioteca de código aberto para serializar e deserializar seus objetos c# em objetos json e JSON em objetos .net...
Exemplo De Serialização:
Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Price = 3.99M;
product.Sizes = new string[] { "Small", "Medium", "Large" };
string json = JsonConvert.SerializeObject(product);
//{
// "Name": "Apple",
// "Expiry": new Date(1230422400000),
// "Price": 3.99,
// "Sizes": [
// "Small",
// "Medium",
// "Large"
// ]
//}
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
Comparação de desempenho com outras técnicas de serialização JSON
Para criar uma classe json a partir de um texto, copie o texto.
No áudio Visual, carregue em Editar > Colar especial > colar o Json como classes.
Isto irá pegar num texto json e transformá-lo em qualquer classe que indique
public static T ConvertJsonToClass<T>(this string json)
{
System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
return serializer.Deserialize<T>(json);
}