2009-02-26 3 views
1

Ich bin gerade dabei, eine schnelle Deserialisierung/Parsing eines benutzerdefinierten Nachrichtenformats zu schreiben, die der BNF-Syntax ähnlich ist. Es gibt vielleicht 50 verschiedene Objekte. Die Grammatik der Objekte enthält eine rekursive Definition, die momentan das größte Problem für mich ist. Kennen Sie einige gute Beispiele oder würden Sie Ihren eigenen Lexer mit regulären Ausdrücken schreiben und sie mit einer FIFO-Warteschlange für die eingebetteten Nachrichten analysieren? In Perl konvertiere ich im Moment die Nachrichten in JSON-Nachrichten und verwende einen generischen Parser, aber ich bin mir nicht sicher, ob dies auf C# sinnvoll ist. Nachrichten sehen so aus: "{key1 = value1 | key2 = {key3 = value3}}".Deserialisierung/Parsing eines benutzerdefinierten Nachrichtenformats

Antwort

0

Die folgende URL zeigt Beispiele für die Serialisierung/Deserialisierung von JSON in C# von Scott Gu und das .NET 3.5 Framework:

http://weblogs.asp.net/scottgu/archive/2007/10/01/tip-trick-building-a-tojson-extension-method-using-net-3-5.aspx

Kurz vor der Zusammenfassung Sie diesen Satz finden:

Hinweis: Zusätzlich zur JavaScriptSerializer-Klasse enthält .NET 3.5 jetzt auch einen neuen System.Runtime.Serialization.DataContractJsonSerializer Klasse, die Sie für JSON Serialisierung/Deserialisierung verwenden können.

this helps:

Andrew

+0

eine an der Quellcode für das JSON Deserializer aussehen kann? – weismat

+0

Ja. Sie können den Inhalt aller .NET- oder beliebigen Assemblys mit diesem kostenlosen Tool anzeigen: http://www.red-gate.com/products/reflector/. Es ist nicht allzu nützlich, wenn die Baugruppe jedoch verdeckt ist –