Go内のJSON構成ファイルの解析と検証(カスタム)を行いたいと思います。私は、構造体にファイルを解析し、それを検証できるようにしたい:Golang:JSONの検証とエラー位置の表示
- 予期しないキーは、JSONファイルに存在しない(特に、タイプミスを検出する)
- 特定のキーが存在し、非有します空の値
エラーが発生した場合(または構文エラーの場合)は、ファイルにエラーが発生した場所を可能な限り詳細に説明するエラーメッセージをユーザーに出力します(例:可能であれば行番号)。
Goに組み込まれたJSONパーサーは、予期しないキーを静かに無視するようです。 JSONを逆シリアル化するためにjsonpb(Protobuf)を使用してみましたが、予期しないキーの場合はエラーを返しますが、位置は報告しません。
空でない値をチェックするには、既存の検証ライブラリを使用できますが、詳細なエラーメッセージは報告されていません。また、組み込みのJSONパーサーから返されたデータを検証するカスタムコードを書くこともできますが、一般的な方法があればいいでしょう。
希望の動作を得る簡単な方法はありますか?
感謝。はい、リンクした実装を試しました。残念ながら、検証が失敗した場合にエラー位置を返すようには見えません。 – stephank
私は自分でライブラリを試していません。多分エラー位置はそれに追加できるものですか? – miku
私はもうちょっとxeipuuvのgojsonschemaを見ました。エラー位置に関する情報を出力することができます: 'fmt.Printf(" - %s:%s \ n "、error.Context()。String()、error)'。 これは次のように表示されます ' - (root).0:name:name is required' – stephank