如何deseralize包含多维数组JSON对象? [英] How to deseralize json object that contains multidimensional array?

查看:156
本文介绍了如何deseralize包含多维数组JSON对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要有关转换包含多维数组上我的课JSON对象一些帮助。我试图反序列化JSON对象,但失败了。 JsonMaclar类对象为null。请帮忙



脚本代码;

  VAR allFields =新阵列(); 
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 。是(':检查'),
RatingeDahil:ratingeDahil.is(':检查'),
MaclarTablosundaGoster:maclarTablosundaGoster.is(':检查'),
MacinTarihi:macinTarihi.val ()
});

$(#<%= btnMaclariKaydet.ClientID%GT;)。点击(函数(){

VAR jsonText = JSON.stringify({
arrayAllMaclar:allFields
});
$('#<%= hfMaclar.ClientID%GT;')VAL(jsonText);

});



C#代码;

 保护无效btnMaclariKaydet_Click(对象发件人,EventArgs五)
{
的JavaScriptSerializer SER =新的JavaScriptSerializer();
JsonMaclar turnuvaMaclar = ser.Deserialize< JsonMaclar>(hfMaclar.Value);
}
公共类JsonMaclar {
名单,LT; JsonMac> arrayAllMaclar {搞定;组; }
}

公共类JsonMac {
串BirinciKatilimciId {搞定;组; }
串IkinciKatilimciId {搞定;组; }
串BirincininSkoru {搞定;组; }
串IkincininSkoru {搞定;组; }
串MacSayisi {搞定;组; }
串MacSuresi {搞定;组; }
串MacinOynanmaSaati {搞定;组; }
串Hukmen {搞定;组; }
串RatingeDahil {搞定;组; }
串MaclarTablosundaGoster {搞定;组; }
串MacinTarihi {搞定;组; }
}


解决方案

我建议你使用 JSON.NET 。它是一个开源的库序列化和反序列化你的C#对象转换成JSON和JSON对象到.NET对象...



序列化示例:

 产品产品=新产品(); 
product.Name =苹果;
product.Expiry =新日期时间(2008,12,28);
product.Price = 3.99M;
product.Sizes =新的字符串[] {小,中,大};

JSON字符串= JsonConvert.SerializeObject(产品);
// {
//名称:苹果,
//到期:新的Date(1230422400000),
//价格:3.99,
//尺寸:
//小,
//中等,
//大
//]
//}

产品deserializedProduct = JsonConvert.DeserializeObject<产品及GT;(JSON);



Json.NET 4.5发行8 - 多维阵列支持,改进的Unicode
Json.NET现在支持序列化和反序列化多维数组。有没有什么你需要做的,如果你的类型的人都有一个多维数组属性它只是工作™。

 字符串[,] famousCouples =新的字符串[,] 
{
{亚当,夏娃},
{邦妮,克莱德},
{唐纳德,雏菊},
{汉书,累啊}
};

JSON字符串= JsonConvert.SerializeObject(famousCouples,Formatting.Indented);
// [
// [亚当,夏娃],
// [邦尼,克莱德],
// [唐纳德 雏菊],
// [汉书,累啊]
//]

串[,]反序列化= JsonConvert.DeserializeObject<字符串[,]> (JSON);

Console.WriteLine(反序列化[3,0] +,+反序列化[3,1]);
//汉,累啊


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

解决方案

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

这篇关于如何deseralize包含多维数组JSON对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆