How to deseralize json object that contains multidimensional array?

15,260

I recommend you to use JSON.NET. it is an open source library to serialize and deserialize your c# objects into json and Json objects into .net objects ...

Serialization Example:

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);

Json.NET 4.5 Release 8 – Multidimensional Array Support, Unicode Improvements Json.NET now supports serializing and deserializing multidimensional arrays. There isn't anything you need to do, if one of your types has a multidimensional array property It Just Works™.

string[,] famousCouples = new string[,]
  {
    { "Adam", "Eve" },
    { "Bonnie", "Clyde" },
    { "Donald", "Daisy" },
    { "Han", "Leia" }
  };

string json = JsonConvert.SerializeObject(famousCouples, Formatting.Indented);
// [
//   ["Adam", "Eve"],
//   ["Bonnie", "Clyde"],
//   ["Donald", "Daisy"],
//   ["Han", "Leia"]
// ]

string[,] deserialized = JsonConvert.DeserializeObject<string[,]>(json);

Console.WriteLine(deserialized[3, 0] + ", " + deserialized[3, 1]);
// Han, Leia
Share:
15,260
Admin
Author by

Admin

Updated on June 18, 2022

Comments

  • Admin
    Admin almost 2 years

    I need some help about converting JSON object that contains multidimensional array to my class. I tried to deserialize the json object but failed. JsonMaclar class object is null. Please help.

    The script code;

    var allFields = new Array();
    allFields.push({
                            BirinciKatilimciId: birinciKatilimciId.val(),
                            IkinciKatilimciId: ikinciKatilimciId.val(),
                            BirincininSkoru: birincininSkoru.val(),
                            IkincininSkoru: ikincininSkoru.val(),
                            MacSayisi: macSayisi.val(),
                            MacSuresi: macinSuresi.val(),
                            MacinOynanmaSaati: macinOynanmaSaati.val(),
                            Hukmen: hukmen.is(':checked'),
                            RatingeDahil: ratingeDahil.is(':checked'),
                            MaclarTablosundaGoster: maclarTablosundaGoster.is(':checked'),
                            MacinTarihi: macinTarihi.val()
                        });
    
    $("#<%=btnMaclariKaydet.ClientID %>").click(function () {
    
                var jsonText = JSON.stringify({
                    arrayAllMaclar: allFields
                });
                $('#<%= hfMaclar.ClientID %>').val(jsonText);
    
            });
    

    c# code;

    protected void btnMaclariKaydet_Click(object sender, EventArgs e)
        {
            JavaScriptSerializer ser = new JavaScriptSerializer();
            JsonMaclar turnuvaMaclar = ser.Deserialize<JsonMaclar>(hfMaclar.Value);
        }
    public class JsonMaclar {
        List<JsonMac> arrayAllMaclar { get; set; }    
    }
    
    public class JsonMac {
        String BirinciKatilimciId { get; set; }
        String IkinciKatilimciId { get; set; }
        String BirincininSkoru { get; set; }
        String IkincininSkoru { get; set; }
        String MacSayisi { get; set; }
        String MacSuresi { get; set; }
        String MacinOynanmaSaati { get; set; }
        String Hukmen { get; set; }
        String RatingeDahil { get; set; }
        String MaclarTablosundaGoster { get; set; }
        String MacinTarihi { get; set; }
    }