Giriş
Şu satırı dahil ederiz.
Örnek
Elimizde şöyle bir kod olsun.
Şöyle yaparız.
Şu satırı dahil ederiz.
using Newtonsoft.Json;
Deserialize metodu - str
Eğer type vermezsek Object tipi döner. Şöyle yaparız.
json model tipine tam olarak uymasa, yani daha fazla alan içerse bile sorun olmuyor.Object convertObj = JsonConvert.DeserializeObject (json);
Şöyle yaparız. İstenilen nesneye cast etmek gerekir.
var json = "[{'a':'aaa','b':'bbb','c':'ccc'},{'a':'aa','b':'bb','c':'cc'}]";
var ja = (JArray)JsonConvert.DeserializeObject(json);
var jo = (JObject) ja[0];
Console.WriteLine(jo["a"]);
Deserialize metodu - str + Type
Örnek
Elimizde şöyle bir kod olsun.
class Guardian
{
[JsonProperty(PropertyName = "guardian_id")]
public int ID { get; set; }
[JsonProperty(PropertyName = "guardian_name")]
public string Name { get; set; } // <-- This
}
class Patient
{
[JsonProperty(PropertyName = "patient_id")]
public int ID { get; set; }
[JsonProperty(PropertyName = "patient_name")]
public string Name { get; set; } // <-- This
}
Şöyle yaparız.string json = @"[{'guardian_id':'1453','guardian_name':'Foo Bar','patient_id':'938',
'patient_name':'Foo Bar'}]";
var guardians = JsonConvert.DeserializeObject<List<Guardian>>(json);
var patients = JsonConvert.DeserializeObject<List<Patient>>(json);
ÖrnekŞöyle yaparız.
string json = File.ReadAllText(@"filepath\Basic.json");
MyObject myObject = JsonConvert.DeserializeObject<MyObject>(json);
Eğer istersek dynamic ile şöyle yaparız.var m = JsonConvert.DeserializeObject<dynamic>(html);
Deserialize metodu - str + Type olarak Array
Şöyle yaparız.
Eğer alan ismi C# diline uygun değilse Dictionary kullanılabilir. Elimizde şöyle bir json olsun. 8 sınıf alanı olamaz.
Elimzde şöyle bir json olsun.
Şöyle yaparız.Şöyle yaparız.
Foo[] foos = JsonConvert.DeserializeObject<Foo[]>(str);
Deserialize metodu - str + Type olarak DictionaryEğer alan ismi C# diline uygun değilse Dictionary kullanılabilir. Elimizde şöyle bir json olsun. 8 sınıf alanı olamaz.
{
8:
[
data,
data2,
data3,
data4
]
}
Şöyle yaparız.var result = JsonConvert
.DeserializeObject<Dictionary<int, IEnumerable<string>>>(resultsString);
veya şöyle yaparız.var result = JsonConvert
.DeserializeObject<Dictionary<int, IEnumerable<Foo>>>(resultsString);
Nesneye erişmek için şöyle yaparız.result[8].First();
Deserialize metodu - str + Type olarak ListElimzde şöyle bir json olsun.
[{"Yes":"52","No":"41"}]
Şöyle bir sınıf olsun.public class Survey
{
[JsonProperty("Yes")]
public string Yes { get; set; }
[JsonProperty("No")]
public string No { get; set; }
}
Şöyle yaparız.var items = JsonConvert.DeserializeObject<List<Survey>>(jsonstr);
Deserialize metodu - str + JsonSerializerSettingsvar settings = new JsonSerializerSettings = ...;
DataTable tbl1 = JsonConvert.DeserializeObject<DataTable>(json, settings);
Deserialize metodu - JsonConverter
Eğer istersek kendi dönüştürücü sınıfımızı da kullanabiliriz.var customConverter = new JSONSanitizer();// create a custom converter
obj = JsonConvert.DeserializeObject<T>(json, customConverter);
Kendi dönüştürücü sınıflarımızı bir dizi gibi verebiliriz.var converters = new JsonConverter[]
{
new CustomConverter(),
};
var dict = JsonConvert.DeserializeObject<T>(json, converters);
Serialize metodu
Verilen herhangi bir nesnesi string'e çevirmek için şöyle yaparız.
Şöyle yaparız.
DataTable dt = ...
string json
= JsonConvert.SerializeObject(dt);
Serialize metodu - FormattingŞöyle yaparız.
string json = JsonConvert.SerializeObject(foo, Formatting.Indented);
Hiç yorum yok:
Yorum Gönder