問題タブ [circe]

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 投票する
2 に答える
1793 参照

json - Argonaut または Circe を使用して不完全な JSON からケース クラスを更新する

DecodeJson不完全な json (一部のフィールドが欠落している) が与えられた場合、ケース クラス インスタンス (必要な s が暗黙的に派生したもの) から更新されたインスタンスを作成する必要があります。これは、Argonaut (できれば) または Circe (必要な場合) でどのように達成できますか?

例:

json を json AST に解析し、それを Shapeless に変換してからLabelledGeneric、何らかの方法で Shapeless update を使用してケース クラス インスタンスを更新する必要があると確信しています。


編集 2

Shapeless ソースを読んだ後、独自の「デフォルト」オブジェクトを生成できることがわかりました。JSONの解析中にケースクラスのインスタンスが存在することを必要とするソリューションを作成することができました。これを回避し、代わりにインスタンスを後で提供することを望んでいました。とにかくここにあります:

これにより が得られPerson(Old Name Kept,42)ます。

0 投票する
3 に答える
5739 参照

json - Json を circe で変換する

次のjsonペイロードを想定

どのように変換しますか

「B」は利用可能な選択肢からランダムに選択されますか?

これは私がこれまでに得たものです:

これにより、未使用の「必須」フィールドが削除され、空の「値」フィールドが挿入されます。ただし、配列からランダムな値を取得して「値」に配置すると、私は逃げます。

- 編集

上記をより明確にするhcursorを使用してみました(とにかく私にとって)

(上記の例では circe 0.5.1 を使用しています)

0 投票する
5 に答える
4262 参照

json - JSON フィールドの名前を circe に変更する

ケース クラスと JSON で異なる名前のフィールドを使用したいので、エンコードとデコードの両方で快適に名前を変更する方法が必要です。

誰かが良い解決策を持っていますか?

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

json - json に含まれていない Circe 特性フィールド

私は、いくつかのケースクラスに混在する単純な特性を持っています。そのクラスのインスタンスを circe 経由で JSON に変換するときに、特性のデフォルト値を持つフィールドが JSON 文字列に含まれていないことに気付きました。

io.circe.generic.auto._エンコードに使用しています

それを説明する例:

与える:{"id":"testId"}

したがってstr、私が期待するタイムスタンプとバージョンの値が含まれていません

ケースクラスにエンコーダーを使用し、特性をスキップするだけだと思います。それらのフィールドも含めるにはどうすればよいですか?

Circeの異なるバージョン(0.3.0および0.6.0)でこれを試しました

また、後で JSON 文字列からそのフィールド (別の値を持つことができる) をデコードできますか、またはこのフィールドを抽象のままにして、ケース クラスでデフォルトの引数を使用する必要がありますか?

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

json - Circe を使用して、HList を含むケース クラスを JSON 文字列に解析する

私はScalaで何かをしています。私は次のケースクラスを持っています:

Circeを使用して、このタイプの JSON 表現を取得したいと思います。また、結果の JSON 文字列を型にマップし直したいと思います。

モジュール circe-shapes は、HList の自動派生を行い、HList から JSON へ、およびその逆を簡単に実行できます。次の例を参照してください。

「標準」タイプを含むケース クラスも自明です。

HList の型を明示的に指定すると驚くほどうまくいきますが、HList の目的が少し損なわれます。

Circe は任意の HList をデコードできますか?

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

json - Circe とモノクル レンズを使用して Json を解析する

私はこのサンプルコードを書きました

しかし、これはイベントコンパイルしません

私も試しました

しかし、これも失敗します

私はかなり驚いています。を実行できるのにisRight、なぜコンパイラは実行できないと言うのrightですか?

これが私のbuild.sbtファイルです

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

scala - Circe 実装によるジェネリック json デコーダー トレイト

プロジェクトのコンポーネントへの依存関係として json デコーダーを挿入するために使用される特性があります。

Circeで実装しようとすると:

そして実行します:

エラーでコンパイルされません:

またはコンテキスト境界を追加しようとしましたがClassTag、の暗黙的な値をまだ見つけることができません。TypeTagWeakTypeTagTDecoder

Decoderコンテキスト バインドまたは暗黙のパラメーターを追加することはできませんJsonDecoder.apply。これを使用するコンポーネントは実装の詳細を認識できないためです。

暗黙的に提供するにはどうすればよいio.circe.Decoderですか? からそれを取得する方法があるかもしれTypeTagませんか?