2017-02-28 1 views
1

Gegeben json zu erkennen. No JsonReaderException wird ausgelöst, obwohl dieselbe Eigenschaft zweimal gesendet wird.Wie Json Eigenschaft gesendet zweimal

Gibt es eine Möglichkeit festzustellen, ob die Eigenschaft mehr als einmal in der JSON-Zeichenfolge gesendet wird?

+0

JSON.NET hat Token-Lesefunktionen. Sie können diese verwenden, um jedes Token mit zuvor gelesenen Tokens zu vergleichen. –

Antwort

0

Der Grund, warum kein JsonReaderException ausgelöst wird, ist, weil doppelte Schlüssel in JSON gültig sind. Eine schnelle und schmutzige Lösung wäre ein Zähler, der jedes Mal inkrementiert wird, wenn die Eigenschaft X Ihrer Klasse gesetzt wird. Wenn es > 1 ist, dann weißt du es.

public class Test 
{ 
    private string _x; 
    private int xCounter = 0; 
    public string X 
    { 
     set 
     { 
      if(xCounter > 1) throw new Exception("DUPES"); 
      xCounter++; 
      _x = value; 
     } 
     get 
     { 
      return _x; 
     } 
    } 
} 

Dies wird sich natürlich fehlschlagen, wenn Sie versuchen, X wieder nach der Deserialisierung zu setzen.

Verwandte Themen