将C#中的JSON反序列化为元组的LinkedList

时间:2017-07-12 13:56:03

标签: c# json deserialization json-deserialization

我的HTML代码中有一系列故障单,我正在从中收集有关JQuery的信息,并通过AJAX成功地将JSON发布到代码隐藏中。

这是JSON文件:

{
                'arrayTickets':
                               [
                                               {"num":1,"rec":"SWAFAD","temp":"0","id":"f39443aa-1ae1-4d18-82b8-468f14dac507"},

                                              {"num":1,"rec":"admin","temp":"0","id":"20bf1fea-b03e-4a28-922a-9618c8c8a73f"}                                           ] 
}

问题是我似乎无法将其反序列化为我想要的结构类型:

[WebMethod]
public static void cmd_gravar_Click(string arrayTickets)
{
    JavaScriptSerializer json = new JavaScriptSerializer();

    LinkedList<Tuple<int, string, string, string>> tickets = json.Deserialize<LinkedList<Tuple<int, string, string, string>>>(arrayTickets);
}

我收到错误:

  

没有为类型定义无参数构造函数   'System.Tuple`4 [[System.Int32,mscorlib,Version = 4.0.0.0,   Culture = neutral,PublicKeyToken = b77a5c561934e089],[System.String,   mscorlib,版本= 4.0.0.0,文化=中性,   PublicKeyToken = b77a5c561934e089],[System.String,mscorlib,   版本= 4.0.0.0,文化=中立,   PublicKeyToken = b77a5c561934e089],[System.String,mscorlib,   Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]'。

我想继续使用这个结构,因为我已经创建了一个使用它将数据保存到DB的工作方法。这是在webforms中完成的。

编辑:使用VS2012

1 个答案:

答案 0 :(得分:0)

据我所知,.net反序列化程序存在元组问题。我认为JSON.net应该解决你的问题

https://www.nuget.org/packages/Newtonsoft.Json/

用法:

 var result = JsonConvert.DeserializeObject<LinkedList<Tuple<int, string, string, string>>>(arrayTickets);