play-json を使用して GitHub API から json を解析しようとしていますが、merge_commit_sha
プル リクエストのフィールドで問題が発生しました (ちなみに、このフィールドが非推奨であることは知っていますが、この解析の問題でそれについて議論したくありません!) . 残念ながらmerge_commit_sha
、場合によってはフィールドが空の文字列として返されます。
"merge_commit_sha": ""
これは、フィールドが私のケースクラスで宣言される方法です:
merge_commit_sha: Option[ObjectId],
Git ハッシュ ID の有効な値ではないため、空の文字列を許容しない暗黙的Format[ObjectId]
ながあります。Read[PullRequest]
また、プル リクエストですべてのフィールドの読み取りを個別に宣言するのではなく、引き続き使用したいplay-json マクロで生成された も使用しています。
"merge_commit_sha": ""
フィールドが Option であると宣言したので、 value として読み取られるようにしたいのですNone
が、これは現在起こっていることではありません。文字列が存在するため、Format[ObjectId]
が呼び出され、 が返されますJsFailure
。
私が試したことの 1 つはFormat[Option[ObjectId]]
、必要な動作で暗黙的を宣言することでしたが、マクロで生成されたRead[PullRequest]
.