1

私は角度の小さなモジュールを作成していますが、JSON.parsedデータが正しいかどうかをチェックする条件が付いています。TypeScriptのJSON.parsedデータを適切に検証します

それは私が以前に文字列化されたオブジェクトで複数のプロパティをありますかのように私にはない優れた解決策のように思える
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; 
} 

、その後、私はそれらの一つ一つをチェックする必要があると思います。また、解析されたデータがnullであるときに何が起こるかについてもわかりません。整列されたデータをチェックするための他のソリューションはありますか?感謝のコメントで述べたように

+0

これは非常に合理的な解決策のように思えます。あなたの懸念事項は何ですか?解析しているJSONに他のフィールドがある場合、上で書いたロジックには影響しません。また、解析したJSONの場合も処理するtry-catchでパースをラップしました。 – Sal

+0

私はJSONに保存するオブジェクトを将来変更することに懸念しています。私はオブジェクトを変更し、解析されたオブジェクトからより多くのプロパティを期待する必要がある場合は、それが設定されているすべてのプロパティを確認する必要があります。私は解析されたデータのインスタンスをチェックすることを考えていましたが、Positionオブジェクトを文字列化し、それを構文解析してPositionのインスタンスではなくなったようにはうまくいかないでしょうか? –

+0

JSON文字列がすでにシリアル化されたPositionオブジェクトである場合は、実際にチェックする必要はありません。 JSON.parse(data)をPosition ** – Sal

答えて

0

、何が欲しいのです:

read(): Position|null { 
    try { 
     return JSON.parse(data) as Position; 
    } catch (e) { 
     return null; 
    } 
} 
関連する問題