問題タブ [argonaut]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
184 参照

json - Argonaut を使用して JSON を検証および解析する

JSON を解析して Scala インスタンスまたはエラー JSON にする必要があります。

たとえば、次の JSON: があり、3 未満であってはならない {"user":"us","password":"pass"} 制約があるとします。次に、次のエラー JSON を取得する必要があります。"user"{"user":"us", "_error_user":"Username length shouldn't be less than 3","password":"pass"}

しかし、JSON の{"user":"user","password":"pass"}場合、 のような Scala インスタンスを取得する必要がありますUser("user","pass")

Argonaut を使用することは可能ですか?

0 投票する
0 に答える
473 参照

scala - Argonaut CodecJson とサブタイプのデコード

ArgonautDecodeJsonトレイトには、デコーダーを連鎖させる方法があり、|||後続の最初のデコーダーが選択されます。同様の効果を持つ同様の方法もありDecodeResultます。一見すると、これらのうちの 1 つが、共通の特性の複数のサブタイプをデコードするために必要なもののように見えます。しかし、実際にこれを行うにはどうすればよいでしょうか。

最初の問題は、 への引数が、呼び出し先がデコードすることになっている型のスーパータイプをデコードする必要があることです ( についても同様です|||) 。そのようなデコーダーは、共通のスーパータイプのすべてのサブタイプをデコードできると期待しているので、これは無限再帰のレシピのようです!DecodeJsonDecodeResult

スーパータイプasInstanceOfの を定義する際に、次の醜いハックを使用してこれを回避できます。CodecJson

ただし、3 つ以上のサブタイプをデコードする場合は、まだ問題があります。サブタイプABおよびCがあるとしFooます。今何?このデコード式にさらに別の代替手段を追加するにはどうすればよいでしょうか? .asInstanceOf[DecodeResult[AnyRef]]解析結果の型安全性を破壊しようとしています (この時点で型安全性を破棄していないかのように!)。そして、選択肢が 4 つ、5 つ、または 6 つあるとすぐに選択肢がなくなります。

EDIT : Argonaut を使用して 2 幅を超えるサブタイプ階層をデコードするための代替アプローチを回答として喜んで受け入れます。

0 投票する
1 に答える
207 参照

json - Argonaut レンズを使用して数値 JSON フィールドを変更するには?

以下は、 Argonaut のレンズ ドキュメントの例の簡略版です。

数値フィールドで同様のことを行うにはどうすればよいですか? たとえば、上記1の数値に加算して、次objの結果を得たいとします。

私の最初の試みは

しかし、この最後の行はコンパイルされません。

0 投票する
2 に答える
320 参照

json - Argonaut in Play フレームワークで読み取りと書き込みを使用する

play アプリケーション用の play json ライブラリを使用して json 解析を行う方法を知っています。たとえば、次のコードがあります。

Play json の代わりに Argonaut を使用して Reads and Writes のようなコードを書くにはどうすればよいですか?

0 投票する
2 に答える
636 参照

json - Scalaでは、コレクションのサブタイプに暗黙的な変換を適用する方法は?

アルゴナウトを使用して、オブジェクトのリストをjsonに変換しようとしています。リストには、さまざまなタイプの検証エラーのリストが含まれています。たとえば、' MissingParameter ' または ' InvalidParameter ' またはその他のタイプのインスタンスを含めることができます。上記の両方のクラスに EncodeJson (argonaut) コーデックを定義しました。上記のタイプのリストをアルゴナウトを使用して json に変換する方法はありますか? つまり、次のことを達成できますか?