問題タブ [json4s]
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.
scala - リクエスト コンテンツ タイプに基づくさまざまなルート スプレー ルーティング 1.2.1
同じ URL に送信されるいくつかの異なるコンテンツ タイプをサポートしたいと考えています。
例えば:
application/x-www-form-urlencoded
、multipart/form-data
、application/json
私は次のようなことをしたいと思います:
カスタムのマーシャリングとアンマーシャリングでこれを行う方法があると思いますが、サービスの 1 つまたは 2 つの場所でのみ必要であり、これは非常に簡単に思えます。誰か助けてくれませんか?
json - json4sを使用して、シリアル化中にオンザフライでフィールドを追加する方法
いくつかのフィールドを持つケース クラスがありDateTime
ます。それをシリアライズするために使用json4s
している間、これらの各フィールドを2つの別々のフィールドとしてシリアライズしたいと思います.1つはフォーマットされた日時文字列で、もう1つはUNIXタイムスタンプです。
たとえば、ケースクラスは次のとおりです。
オブジェクトの場合:
シリアル化されたjson文字列を次のようにしたい:
試してみましFieldSerializer
たCustomSerializer
が、うまくいきませんでした。
mongodb - ReactiveMongo & JSON4S
JSON4S を使用して、外部 API から取得した JSON 文字列を解析しています。
play reactmongo JSONCollection やスプレー json からリアクティブ mongo コンバーターのような JSON エンティティを取得する方法はありますか?
標準のMongo Casbah libなどでJSON4Sを簡単に使用できますbuilder.insert(JObjectParser.parse(obj))
しかし、reactivemongoでこれを実現したいと本当に思っています。
json - 型シリアライザとフィールド シリアライザの組み合わせ
次の設定のケース クラスがあるとします。
次のように、このタイプの (動作する!) シリアライザーを作成できます。
しかし、ケース クラスが最終的により多くのフィールドを持つと仮定すると、AST を使用してオブジェクトの構造全体を列挙し、プリミティブをエンコードするためだけに非常に冗長なものを作成する可能性があります。
json4s には、特定のフィールドにのみ作用するフィールド シリアライザーが含まれているようで、名前を簡単に変換してフィールドを破棄するボイラープレート メソッドが含まれています。serialize
ただし、これらには、その機能とdeserialize
部分機能に対して次のシグネチャがあります。
(キーを表す型 -> jsonからJField
の val) は独自の型であり、のサブクラスではないため、これら 2 つのタイプのシリアライザーを組み合わせて、デフォルトの処理を維持しながら、キーをその名前で aJValue
に適切にエンコードするにはどうすればよいですか?他のフィールド (プリミティブ データ型) のid
UUID
基本的に、すでに処理できるPlace
すべてのフィールドに対して AST 構造を指定する必要なく、その中のフィールドが UUID であることを理解するフォーマット チェーンが必要です。DefaultFormats
私が具体的に探しているのは、キー名と値の型を使用してフィールドのマーシャリングを処理する方法を決定できるpythonのJSONEncoder
andインターフェイスに似たパターンを模倣することです。JSONDecoder
scala - json4s: タイプを JValue に変換
ソース オブジェクトsrc
があり、そこから を取得したいと考えJValue
ています。json4s のすべての例とドキュメントは、次のように、JSON でエンコードされた文字列を取得することを中心に展開しているようです。
最終結果のみが必要な場合はそれで問題ありませんが、次のように記述したいと思います。
それはToJsonWritable[T]
私が使いたいもののようですが、実装を見つけることができないようですWriter[AnyRef]
(また、実装を教えてくれるjson4sのscaladocを見つけることもできません)。
json - json4sの解析例外に入力を追加するには?
で JSON を解析しているとしjson4s
ます。
parse
で例外が発生する場合があります。残念ながら、これらの例外には入力 ( json
) が含まれておらず、理解して再現できない場合があります。
ラッパーでラップすることはできparse
ますが (以下を参照)、機能しません。
が の場合json
はどうなるInputStream
でしょうか。ストリームを読むべきですか?JSON が非常に大きい場合はどうなりますか? おそらくストリーム全体は必要ありません。parse
失敗したキャラクターまでの部分だけが必要です。
入力を解析例外に追加することをどのように提案しますか?
scala - Future[T] で HTTP url/params を運ぶ Scala モナド
ディスパッチ結果をリクエストに使用される URL とパラメータでラップする次のモナドを scala に実装しました。
私が抱えている問題は、の定義にありflatmap
ます。flatmap
が正しいためには、とurl
がparams
から来ている必要がありf
ますf: T => Result[S]
。上記の例では、正常にコンパイルされ、署名はまさに私が必要としているものですが、self.url
andは、 andがedで更新されていないことをself.params
意味します。つまり、 and変数を取得する方法がわかりませんが呼び出されているときのアプリケーションから。url
params
Result
flatMap
url
param
f
flatMap
にはT
が必要ですが、 andにRequest[S]
は必要ありません。適切に定義できるように をから分離するスカラの方法は何でしょうか?url
params
url,params
result
flatMap
注: モナドの背後にある一般的な目的はHTTP
、ディスパッチ (つまりFuture[T]
) の結果を処理しながら、 を更新してリクエストに使用できるようにすることurl
です。を変更しますparams
flatMaps
url
params
result
result
編集:これは私が現在モナドをどのように使用しているかの例です
以前は、これは理解のFuture[T]
ためにうまくいきましたが、そうすると、使用されているURL/パラメーターが失われたことに注意してください
scala - json4s JValue を Jackson JsonNode に変換するには?
json4s を使用している場合 (Jackson バインディングを使用):
org.json4s.JsonAST.JValue
上記のような与えられたをに変換するにはどうすればよいcom.fasterxml.jackson.databind.JsonNode
ですか?
これを行う理由: s を引数として受け取るJValue
優れたjson-schema-validator Java ライブラリを使用して、JSON スキーマに対して sを検証したいと考えています。JsonNode
Play フレームワークのJsValue
<> JsonNode
interopの処理に相当するものを探しています。