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
Author by
Admin
Updated on June 18, 2022Comments
-
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; } }