問題タブ [spray-json]

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

scala - スプレーjsonでオプションのフィールドを表す方法は?

リクエストにオプションのフィールドがあります。

私のプロトコルは次のとおりです。

次の JSON オブジェクトが正しく読み取られ、受け入れられるように、nextAt フィールドをオプションとしてマークするにはどうすればよいですか。

私は実際にはnullの場合はあまり気にしませんが、詳細があればいいと思います. 私はスプレー json を使用していますが、オプションを使用すると、元の JSON オブジェクトにフィールドがない場合、フィールドがスキップされるという印象を受けました。

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

scala - ジェネリックメソッドをscalaのジェネリックメソッドにラップするにはどうすればよいですか?

Option例外をスローするのではなく、を返すように、spray-jsonパーサーをラップしようとしています。

最初のステップとして、メソッドを自分のメソッドでラップしようとしていますが、汎用化するのに問題があります。

パーサーは暗黙のフォーマットオブジェクト(私が使用している具象型に対して定義されている)を使用しますが、メソッドが汎用の場合、コンパイラーは次のように文句を言います。

関連するコードは次のとおりです。

これを機能させるには何をする必要がありますか?

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

scala - 周囲のスコープからの暗黙的なパラメーター解決

私は自分のコードに暗黙的なパラメーターを持ち込むのが好きではないので、それらを使用する場所でそれらの使用をカプセル化したいと考えています。そのため、spray-json への呼び出しを例外処理でラップし、モデル クラスごとにデフォルトの暗黙的な JsonFormats を含むオブジェクトを定義しようとしています。ただし、暗黙的なパラメーターは、コードを呼び出すクライアントにインポートされない限り解決されません。これは、まさに私が望んでいない場所です。これが私がこれまでに持っているものです(暗黙のフォーマッタを解決しません)。私がやりたいことを得る方法はありますか?

注意。JsonFormat は JsonReader の型です

編集:@paradigmaticの2番目の提案に基づいて私が書いたものは次のとおりです(これは機能しませんが、まだ取得できませんCannot find JsonReader or JsonFormat type class for T)。何か不足していますか?

記録として、これは機能するコード スニペットですが、あまりにも多くのクライアント コードを必要とするため (つまり、スコープ内に暗黙的なコードを含める必要があるため)、回避しようとしています。

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

scala - Scala 型クラス パターンとジェネリック メソッド

スプレーとスプレー json を使用して json POST 本文を解析するための汎用エクストラクターを作成しようとしています。

ただし、複数のモデルで動作させるのに苦労しています。サービス オブジェクトの case ステートメントは次のとおりです。

そして、これが私が書いたエクストラクタです (これは、case ステートメントのスコープ内に単一のモデルの JsonReader しかない限り機能します):

ただし、新しいモデル (および関連する JsonReader) を追加するとすぐに、コードは次のエラーでコンパイルされなくなります。

JsonReaders のジェネリック型が異なるという事実は失われているようです。このタイプの消去はありますか?私が欲しいものを手に入れる方法はありますか?

これまでのところ、プロジェクトの完全なコンパイル コードと、ExampleService何が壊れているのかを説明するコメントがあります: github.com/rsslldnphy/foam。あなたの助けに感謝します、ありがとう。

または、私が望むことが現在不可能な場合、誰かが別のアプローチを提案できますか?

0 投票する
0 に答える
525 参照

scala - 一般的なルート関数内でのスプレー json マーシャラーの使用

スプレーを使用して REST サービスを作成しています。私が持っているルートのいくつかは同じパターン (GET /foos、POST /foos、GET /foos/:id など) に従っているので、これらのルートをなどのようmodelRoutes[Foo]("foos")に呼び出すことができる汎用関数に分解したいと思います。modelRoutes[Bar]("bars")

実際のデータベース操作は Controller[T] トレイトで発生し、暗黙的object FooController extends Controller[Foo]などがあります。たとえば、def getAll: List[T]Controller[T] とdef getAll: List[App]AppController です。

私が抱えている問題は、内部modelRoutes[T <: Model : Controller](prefix: String)でモデルの型が失われているため、Marshaller[T] と Marshaller[List[T]] が見つからないことです。これまでのところ、暗黙的およびマニフェストのさまざまな順列を試しましたが、うまくいきませんでした。

ジェネリック関数でマーシャラーと正しく対話するにはどうすればよいですか?

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

scala - Jackson を使用している場合、Spray.io で暗黙的な Marshaller を見つけることができませんでした

POST を処理する Spray.io ディレクティブがあり、Jerkson (Jackson のスカラ インターフェイス) を使用して、着信 JSON を適切なクラスに解析したいと考えています。

問題は、コンパイルに行くと、スプレーがマーシャラーを探しに行くことです:

このためにカスタム Marhsaller を作成する必要がありますか? それとも私のディレクティブが正しく書かれていませんか?そして、私がそれを必要とする場合、何か良い例はありますか?

ありがとう!

0 投票する
2 に答える
1068 参照

scala - Unicode 記号をキリル文字に変換できません

ロシア語でいくつかの名前を持つ Apache Lucene に永続化されたドキュメントの束があり、それらを印刷しようとすると、このように見えます"\u0410\u0441\u043f\u0430\u0440"が、キリル記号ではありません。プロジェクトはScalaです。Apache Commons の方法でこれを修正しようとしましたunescapeJavaが、役に立ちませんでした。他のオプションはありますか?

更新: プロジェクトは、Spray フレームワークで作成され、次のような json を返します。

0 投票する
2 に答える
1120 参照

routing - スプレー ルーティングを使用してカスタム Json オブジェクトをテストする方法

いくつかの CRUD 操作のために、mongodb の上にスプレー ルーティングを使用して Rest API を作成しています。これはすべて正常に動作します。

次のエラーで失敗します。

ソースファイルへの参照と行番号が一般的な failTest(msg:String) メソッドを指しているため、どこを見ればよいかわかりません

いくつかの詳細情報:

SalatDAO を使用して Mongo に永続化するケース クラスがあります。

ここで、ObjectId() は、mongodb の ID 生成をラップして、spray_json を介してこれを (アン) マーシャリングするクラスです。いくつかの jsonFormats を作成しました

および私のルートの関連部分(エラー処理とログを削除):

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

scala - JSON の REST サービスを公開する方法は?

JSON ペイロードを受け入れる Spray サービスを公開する必要があります。このような機能を示すサンプルはどこにありますか?