1

Ich erstelle ein kleines Modul für die eckige und ich bin fest mit Bedingung, wo ich meine JSON.parsed Daten überprüfen, wenn sie korrekt sind.Korrekte Validierung der JSON.parsed Daten in TypeScript

read(): Position|null { 
    try { 
     ... 
     let parsedData = JSON.parse(data); 
     if (parsedData && parsedData.x && parsedData.y) 
      return new Position(parsedData.x, parsedData.y); 
    } catch (e) { 
     ... 
    } 
    return null; 
} 

Es nicht wie eine große Lösung, mir scheint, als gäbe es mehr Objekte im Objekt ist vorher Zeichenfolge ich, dann brauche ich würde für jeden von ihnen zu überprüfen. Ich bin mir auch nicht sicher, was passiert, wenn die analysierten Daten null sind. Gibt es eine andere Lösung für die Überprüfung der stratifizierten Daten? Dank

+0

Dies scheint eine sehr vernünftige Lösung. Worum geht es dir genau? Wenn der zu analysierende JSON andere Felder enthält, hat dies keine Auswirkungen auf die Logik, die Sie oben beschrieben haben. Und Sie haben den Parse in einen try-catch geschrieben, der auch fehlerhafte JSON-Fälle behandeln sollte. – Sal

+0

Ich bin besorgt über die Änderung des Objekts, das ich in JSON in der Zukunft speichern werde. Für den Fall, dass ich das Objekt ändern und mehr Eigenschaften von geparsten Objekten erwarten muss, müsste ich nach jeder Eigenschaft suchen, wenn sie gesetzt ist. Ich dachte darüber nach, die Instanz von geparsten Daten zu überprüfen, aber es würde wahrscheinlich nicht funktionieren, wenn ich das Position-Objekt stringge und es dann wieder analysiere, es ist keine Instanz von Position mehr, habe ich recht? –

+0

Wenn Ihre JSON-Zeichenfolge bereits ein serialisiertes Positionsobjekt ist, müssen Sie wirklich keine Prüfungen durchführen. Sie könnten einfach ** JSON.parse (Daten) als Position zurückgeben ** – Sal

Antwort

0

Wie in den Kommentaren diskutiert, was Sie wollen, ist:

read(): Position|null { 
    try { 
     return JSON.parse(data) as Position; 
    } catch (e) { 
     return null; 
    } 
} 
Verwandte Themen