1

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].

4

1 に答える 1