問題タブ [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: JSON 解析の例で pi-forall が読み込まれるのはなぜですか?
https://www.fpcomplete.com/school/pick-of-the-week/episode-1-jsonを介して Haskell で JSON の解析を学習しようとしています
ファイルをロードすると (このインタラクティブなリストの後に表示されます)、次のようになります。
一体、なぜそれがロードされるのでしょうpi-forall
か?? これは、OPLSS 2013 の Stephanie Weirich のデモ impl です。これがロードされているのは誰で、何を、なぜロードされているのかを追跡するにはどうすればよいですか?
X03ObjSetsTweetSetTest.hs は次のとおりです。
json - Data.Tree の孤立した FromJSON インスタンスの作成を回避する方法
aeson
パッケージを使用しています。Data.Tree
宣言で使用するデータ型があります。次のように、より複雑になります。
このタイプのインスタンスData.Aeson.TH
を生成するために使用したいと思います。FromJSON
ただしData.Tree
、 の標準インスタンスはありませんFromJSON
。つまり、孤立したインスタンスを宣言する必要があります。
孤立したインスタンスの作成を回避する方法はありますが、引き続き使用できますderiveJSON
か?
haskell - (Map String v) の既存の FromJSON インスタンスが (Map String String) で使用されないのはなぜですか?
Aeson を使用したこのサンプル プログラムの場合:
インスタンスが見つからないというエラーが表示されます。
JSON を解析するには FromJSON インスタンスが必要であり、Aeson には一般的に使用される多くのインスタンスが含まれていることも理解しています。ドキュメントによると、インスタンスがありFromJSON v => FromJSON (Map String v)
、この場合はそれを使用する必要があると思いました。
私は何が欠けていますか?
exception - aeson / attoparsec を使用したコンジット、ソースにデータがなくなったら例外なくきれいに終了する方法
ファイル/ウェブサーバーからのJSONデータを解析するためにaeson
/attoparsec
およびconduit
/conduit-http
接続を使用しています。conduit-attoparsec
私の問題は、パイプラインが常にこの例外をスローすることです...
...ソケットが閉じられるか、EOF に達すると。パイプラインなどを介して結果のデータ構造を解析して渡すことは問題なく機能しますが、常にsinkParser
この例外をスローして終了します。私はこのようにそれを呼び出します...
...ByteStrings をメッセージ構造に解析するコンジットの内部。
データがなくなったら (トップレベルの式がなくなったら)、パイプラインをきれいに終了させるにはどうすればよいですか? エラー文字列を見なくても、この例外を検出/区別する適切な方法はありますか?
ありがとう!
編集: 例:
サンプル入力 (input.json):
出力:
と out.txt:
json - Data.Aeson encoding optional keys
I have the following problem, I have a JSON format with optional keys that I need to generate from my haskell code.
Lets make an example
now, if I try encoding a Person without a shoesize I still get a key "shoeSize" set to null, what is the Aeson way of making keys optional in encoding
edit, example of an encode
should result in