JSON'u C# ile nasıl ayrıştırabilirim?

Aşağıdaki koda sahibim:

var user = (Dictionary<string, object>)serializer.DeserializeObject(responsecontent);

ResponseContent` içindeki girdi JSON'dur, ancak bir nesneye düzgün şekilde ayrıştırılmamıştır. Bunu nasıl düzgün bir şekilde deserialize etmeliyim?

Json.NET]1 (Newtonsoft.Json NuGet paketi) kullanmadığınızı varsayıyorum. Eğer durum buysa, o zaman denemelisiniz.

Aşağıdaki özelliklere sahiptir:

  1. LINQ'dan JSON'a
  2. NET nesnelerinizi hızlı bir şekilde JSON'a ve tekrar JSON'a dönüştürmek için JsonSerializer
  3. Json.NET isteğe bağlı olarak hata ayıklama veya görüntüleme için iyi biçimlendirilmiş, girintili JSON üretebilir
  4. JsonIgnore ve JsonProperty gibi nitelikler, bir sınıfın nasıl serileştirileceğini özelleştirmek için bir sınıfa eklenebilir
  5. JSON'u XML'e ve XML'den dönüştürme yeteneği
  6. Birden fazla platformu destekler: .NET, Silverlight ve Compact Framework

Aşağıdaki örnek'ye bakın. Bu örnekte, JsonConvert sınıfı bir nesneyi JSON'a ve JSON'dan dönüştürmek için kullanılmaktadır. Bu amaç için iki statik metodu vardır. Bunlar SerializeObject(Object obj) ve DeserializeObject(String json):

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": "2008-12-28T00:00:00",
//  "Price": 3.99,
//  "Sizes": [
//    "Small",
//    "Medium",
//    "Large"
//  ]
//}

Product deserializedProduct = JsonConvert.DeserializeObject(json);
Yorumlar (12)

NET 4 sizin için uygunsa, göz atın: http://visitmix.com/writings/the-rise-of-json (archive.org)

İşte o siteden bir parça:

WebClient webClient = new WebClient();
dynamic result = JsonValue.Parse(webClient.DownloadString("https://api.foursquare.com/v2/users/self?oauth_token=XXXXXXX"));
Console.WriteLine(result.response.user.firstName);

Son Console.WriteLine oldukça güzel...

Yorumlar (3)

Ayrıca DataContractJsonSerializer'e de göz atabilirsiniz.

Yorumlar (2)