JSON の末尾のカンマ: 実行時の頭痛
Go では複合リテラルに末尾のカンマを含めるというガイダンスがあるにもかかわらず、このルールは失敗するようですJSON を解析するとき。提供されたコード例に示されているように、末尾のカンマを削除するとパーサーは成功します。
末尾のカンマ構文を保持する解決策はありますか?
回答:
残念ながら、解決策はありません。 JSON 仕様では、末尾のカンマを明示的に禁止しています。これを含めると JSON ドキュメントが無効になり、有効な JSON パーサーで解析エラーが発生します。
Go の末尾のカンマ ルールがここに適用されないのはなぜですか?
Go の末尾のカンマ ルールの起源は次のとおりです。 JSON 仕様ではなく、言語の構文です。非 JSON コンテキストでは、複合リテラル内の要素を区切るために末尾のカンマが必要です。ただし、JSON では、配列またはオブジェクト内の値を区切るという別の目的を果たします。
ベスト プラクティス:
末尾のカンマによって引き起こされるランタイム エラーを回避するにはJSON、JSON 仕様に従い、JSON テキストの末尾のカンマを省略します。 Go の内部構文と完全には一致していない可能性がありますが、他の JSON パーサーとの互換性が確保され、不要な解析エラーが防止されます。
以上がJSON の末尾のカンマ: Go のルールが壊れるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。