2017-07-12 3 views
0

Ich habe eine Sammlung von Karten in meinem HTML-Code, aus dem ich Informationen mit JQuery bin colleting und erfolgreich in JSON Posting über AJAX Code-Behind. HierDeserialize JSON in C# zu einer LinkedList von Tupeln

ist die JSON-Datei:

{ 
                '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"}                                           ] 
} 

Das Problem ist, ich kann es nicht in der Lage sein scheinen deserialisiert der Art der Struktur Ich möchte:

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

erhalte ich die Fehler :

No parameterless constructor defined for type of 'System.Tuple`4[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'.

Ich würde gerne diese Struktur verwenden, da ich bereits eine Arbeitsmethode erstellt, die die da speichert ta mit der DB mit. Dies geschieht in Webforms.

Edit: mit VS2012

Antwort

0

Von dem, was ich erinnere mich an die .net Deserializer Probleme mit Tupeln hat. Ich denke, JSON.net sollte Ihr Problem

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

Usage lösen:

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

Dank. Ich kann das Paket nicht installieren, da ich in VS2012 bin und anscheinend brauche ich NuGet 2.12+, das nicht verfügbar ist. –

+0

Warten Sie, stellt sich heraus, ich muss es nicht installieren, ich kann den Code ausführen. Problem ist, dass die Variable "result" die richtige Anzahl von Elementen hat, die int-Werte jedoch alle 0 und die Strings alle null sind. –