CodeSOD: JSONシリアライザー ノート

CodeSOD: JSONシリアライザー

キャロルのコードは、文字列を手動で構築することによって、JSONシリアル化に対する貧弱なアプローチを示しています。この方法はエラーを起こしやすく、C#には組み込みのJSONシリアル化機能があるため、不要です。このコードは、文字列表現を検査することでシリアル化のためのデータ型を推測しようとしています。具体的には、タプルを処理するために括弧を角括弧に変換します。また、値を数値またはブール値として解析し、そのJSON表現を決定しようとします。それ以外の値はすべて文字列として扱われ、引用符で囲まれます。重大な欠陥は、文字列内の文字の適切なエスケープが欠如していることであり、データに引用符が含まれている場合、不正な形式のJSONにつながる可能性があります。このコードには、余分なカンマがJSON文字列に追加され、条件付きチェックで削除されるというバグもあります。この手動の文字列操作は、悪い習慣の兆候です。開発者は、JSONシリアル化などのタスクには、常に既存のライブラリまたは言語機能を利用する必要があります。本当に複雑なコード生成が必要な場合は、最初に構文木を構築することが正しいアプローチです。