問題タブ [aeson]
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 - Haskell Aeson:値をカスタム型に変換する方法は?
良い例が見つかりません。どんな助けにも感謝します。JSON は次のとおりです。
私が使用したコードは次のとおりです。
FromJSON
変換する型を定義して使用するにはどうすればよいですかx
:
または同様のデータ構造?注意してください[[]]
-- JSON には複数の最上位エントリがあると予想しています。
json - Haskell、Aeson、JSONをカスタムタイプに解析
以前の投稿に続いて、私は完全に立ち往生していることがわかりました。JSON構造を自分の型に解析しようとしていますが、配列の解析方法に固執しているだけでなく、意図したとおりにAesonライブラリを使用しているかどうかさえわかりません。どんな助けでも大歓迎です。
コード:
テストファイル:
json - Aeson と MongoDB BSON を使用したサポートされていない型 UString
MongoDB Data.Bson の ToJSON および FromJSON インスタンスを生成するために Data.Aeson.TH serveJSON を使用しようとしています。
現時点で私は使用しています:
コンパイル時に次のエラーが生成されます。
ここでの問題は、BSON ドキュメント内の文字列が Ustring であることだと思います。BSON データ内で期待される UString を別の String 型に変換するか、別の方法でマップする必要がありますが、方法については困惑しています。
json - ネストされたオブジェクトの配列を Aeson で解析する
name
JSONオブジェクトを解析し、指定されたおよびでJSONEventを作成したいargs
私は Aeson を使用していますが、現在"args":[{"a": "b"}]
は[(String, String)]
.
前もって感謝します!
haskell - Yesodに永続型のToJSON/FromJSONのインスタンスがないのはなぜですか?
生成された型のToJSON/FromJSONインスタンスを作成するのはそれほど難しくありませんが、それでも、コードを生成している間にそれを投入できますか?または、Yesodユーザーとしてこれを実現する簡単な方法はありますか?(私はTHがどのように機能するかについてあまり深く掘り下げていません...)
更新: OK、私はこの提案が好きですが、私の永続的なタイプはユーザーだと言います。使用する場合
それは
どうやらそれはエイリアスだからです。だが
収量
私はおそらくまだ間違ったタイプを持っていますが、正しい呪文を取得するためにPersistentが生成するものについて十分に見つけることができません。
json - フォールトトレラントなJSON解析
Data.Aesonを使用して、JSONをレコードタイプに解析しています。時々データがJSONに追加され、Aesonが次のような影響について不平を言うので、これは私のコードを壊します。
21個の名前/値ペアを持つオブジェクトが必要ですが、23個の名前/値を取得しました
フォールトトレラントな方法でJSONを解析したいのですが、後日JSONにフィールドが追加されてもかまいません。できる限り解析してください!このフォールトトレランスを実現する方法はありますか?これが私のコードです:
Data.Aeson.THのderiveJSONを使用して解析コードを生成していることを追加する必要があります。FromJSONコードを手動で記述した場合、フォールトトレラントですが、それを行う必要はありません...
json - Haskell、Aeson - インスタンスをデバッグするには?
私は複雑なネストされたjsonを持っています.AesonとAttoparsecでカスタムタイプに解析しようとしています。質問からの情報に基づく: Haskell, Aeson & JSON parsing into custom type , Aeson: How to convert Value into custom type? そしてインターネットからのいくつかの情報。
次のコードを使用している場合、オーバーラップした FromJSON インスタンスから "Nothing" 値を取得していますが、コードは確実に各インスタンスを通過します。他のインスタンスを無効にしてこれをテストしました。では、主な質問: インスタンスでコードをテストし、GHCi での実行中にデータがどのように変化するかを確認するにはどうすればよいでしょうか?
PS: ブレークポイントと「トレース」を設定しようとしましたが、main & parseCfg 関数でのみ機能します。
python - Haskellで一般的な方法でJSONオブジェクトをナビゲートする
私の目標は、jsonファイルの名前を取り、残りの引数をそのjsonファイルをナビゲートし、ナビゲートされた値を出力するパスとして解釈するプログラムをHaskellで作成することです。問題は、JSONに複数の値型を含めることができるため、Haskellの型システムに必要なものを理解させる方法がわかりません。これが私が正しく実装できない「ナビゲート」機能を備えたHaskellコードです:
参考までに、同じプログラムがPythonでどのように記述されているかを次に示します。
プログラムは次のように実行されます。
haskell - Haskell Aeson の一般的な解析の分解
次のスタイルの JSON リクエストがあります。
Yesod bookからのこのコード スニペット
しかし、生成された値のデータ構造をどのように分解するかについて頭を悩ませることはできません。キーなどの値を取得するにはどうすればよいですか。明示的に定義されたデータ構造に解析できることはわかっていますが、それは私のユースケースに他の種類の問題をもたらすでしょう。
modValue では、何を入れればよいか分からないところにコメントを入れました。それがAeson内で実装されている方法であるため、マップとして扱ってみましたが、明らかに型チェックは行われません。
編集:
インポートに Data.HashMap を追加し、行を使用する
次のエラーメッセージが表示されます。
EDIT2:
突然の予感で、「unordered-containers」に関する以前に表示されたエラー メッセージを突き止めました。これは、Aeson が使用するパッケージです。しかし、Data.HashMap としてインポートされるパッケージ hashmap もインストールされていることに気付きました。unordered-containers からのハッシュマップは、Data.HashMap.Strict または Lazy! としてインポートされます。
とにかくそれを修正するために行を変更しimport qualified Data.HashMap as M
ます。import qualified Data.HashMap.Strict as M
与えられた答えが機能するようになりました!
haskell - コンジットのsinkParserと組み合わせたAesonのdeliverJSON
コンジットと aeson の探索を続けます。このYesod bookValue
の (わずかに変更された) コード スニペットの代わりに、独自のデータ型を使用するにはどうすればよいでしょうか。
基本的には型dispatch
をJSONRequest→IO JSONRequestに変更したい。fromJSON の独自の派生インスタンスを使用するようにパーサーに指示するにはどうすればよいですか?
型宣言を追加して、json の多形的な戻り値の型を祈ってみましたが、厳密には Value 用であることに気付きました。