問題タブ [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.
json - Argonaut、カスタム JSON 形式のマッピング
モデル:
Argonaut ベースのデコーダー:
これにより、次のような形式を解析できます。
今、JSON形式を簡素化して使用したい
代わりに、モデルを変更しないでください。Argonaut でこれを達成する方法は?
json - Argonaut を使用して最上位の JSON プロパティを削除するより簡潔な方法はありますか?
この小さなArgonaut Json
インスタンスがあるとしましょう:
ここで、キーが であるペアを削除したいと思いますviewed
。以下が機能することがわかりましたが、少し冗長すぎます。これより短いものはありますか:
また、変更を「コミット」するメソッドの名前 ( undo
) は、私の意見では少し誤解を招くように思えますか? 名前をどのように解釈すればよいですか?最初は、変更履歴の最後の変更を元に戻す方法があると思いました。
アップデート
私は1つの解決策を見つけました。の使用HCursor
:
なぜundo
名前が付けられたのかという問題undo
はまだ未解決です。
json - Argonaut を使用して汎用 JSON コンバーターを作成する
私は Scala を初めて使用します。ここでは、Argonaut に基づいて汎用の json コンバーターを作成しようとしています。google と stackoverflow で検索してみましたが、今のところわかりません。
これが私のコードのスニペットです。
私がやろうとしているのは、将来追加する新しいモデル クラス (この場合は Currency や Person など) ごとに一致を追加し続ける必要がないように一般化することです。
scala - アルゴノートでの JSON フィールド名の変換
下位互換性の理由から、API からの JSON 応答を変換するライブラリを作成しています。そして、私がする必要があるのは、任意の JSON を取り込んで、特定のフィールド名を変更することです。私はscalaとargonautを使用していますが、フィールド名を変更するドキュメントや例には何も表示されず、値のみが表示されます。
scala - JSON データのディープ マージ
リフト JSON 、アルゴナウトなどを使用して JSON 構造をディープマージすることは可能ですか?
新しい属性 ("instance" : ["PQRSTUW"] ) を "metrics" / "tags" 構造にディープ マージしようとしています。
得た
これは可能ですか?
json - Scala Argonaut を使用して JSON 配列を解析する
次の JSON を解析しようとして、Scala と Argonaut を使用しています。
そして、名前、型、およびサイズのプロパティを持つList[MyType]
場所に値を反復して抽出する方法を見つけるのに苦労しています。MyType
より具体的なコードをすぐに投稿します (私は多くのことを試しました) が、基本的には、カーソルがどのように機能するか、配列などを反復処理する方法を理解しようとしています\\
。配列:->-
を反復処理する場合、--\
(downField) は使用できません (少なくとも IntelliJ はそうは考えていません)。だから問題はどうすればいいですか:
- 配列に移動します
- 配列を反復処理します (完了したことを認識します)
- 各フィールドの文字列、整数などの値を抽出します -
jdecode[String]
?as[String]
?
scala - scala Arnautaut を使用してネストされたクラスをエンコードする
次のケースクラスをエンコード/デコードしようとしています
次のコードを使用します。
Arrnaut を使用していますが、次のコンパイラ エラーが発生します。
明らかに、コンパイラは List[Person] のエンコーディングを処理する方法を認識していません。これは、Person のエンコード方法の定義内で使用されているためです。
正しい方法でエンコードする方法をアルゴナウトに伝える賢い方法はありますか?
更新: Travis に感謝: 現在コンパイル中ですが、動作していません。
無限再帰とデコードしようとするスタックオーバーフローにつながります
結果は
このネストされたjsonをデコードするこのアプローチは有効ですか? まったく違うことに取り組む必要がありますか?それとも、別の小さなコードが欠落しているだけですか?
json - Argonaut.io:どちらかを含むクラスのRight/Leftのjsonプロパティの名前を変更する方法
Argonaut では、ケース クラスにいずれかが含まれているインスタンスで、対応する JSON プロパティ名を簡単に変更する方法を教えてください。
たとえば、次の定義があるとします。
FooBar
を JSON のような形式に変換するとFooBar(Right(Bar("hello"))).asJson.spaces4
、次のようになります。
上記の出力で「Right」の名前をより意味のある名前に変更する最も簡単な方法は何ですか? (私の実際のシナリオには、多くのイーザーを持つ多くのケース クラスがあるため、可能な限り最も簡潔な方法を探しています。)