Wie kann ich die ganze Zahl in int deserialisieren, nicht zu lang?

8

Ich verwende Json.NET, um Anfragen serverseitig zu deserialisieren.

Es gibt etwas wie

%Vor%

Ich muss Werte wie 30.0 , 27 , 54.002 eingeben und sie müssen double und int sein.

Json.NET hat eine Deserialisierungseigenschaft namens FloatParseHandling , aber es gibt keine Option wie IntParseHandling . Die Frage ist also Wie kann ich Integer zu int deserialisieren?

    
Igor Shastin 29.07.2013, 07:53
quelle

1 Antwort

9

Am besten ist die Deserialisierung in ein typisiertes Modell, wo das Modell ausdrückt dass Values ein int / int[] / usw. ist. Im Fall von etwas, das hat als object / object[] (vermutlich weil der Typ im Voraus nicht bekannt ist oder ein Array heterogener Elemente ist), dann ist es für JSON.NET nicht unangemessen, standardmäßig auf% co_de zu setzen %, da dies die geringste Verwirrung verursacht, wenn im Array eine Mischung aus großen und kleinen Werten vorhanden ist. Abgesehen davon, es hat keine Möglichkeit zu wissen, was der Wert war auf dem Weg in ( long (a 3L ), wenn in JSON serialisiert, sieht identisch mit long (ein 3 )). Sie könnten int einfach nachbearbeiten und nach denen suchen, die Values und im Bereich long sind:

%Vor%     
Marc Gravell 29.07.2013 08:01
quelle

Tags und Links