問題タブ [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 投票する
1 に答える
4053 参照

scala - スプレー json を使用して、「asJson」メソッドをケース クラスの一部にするにはどうすればよいですか?

Spray-json を使用して Scala でケース クラスを作成できるようにしたいのですがasJson、 class でメソッドを定義しますが、方法がわかりません。たとえば、私はこれを行うことができるようにしたいと思います:

暗黙的な JSON コンバーターを作成するのは簡単です。

しかし、私の知る限り、これはクラスの外でのみ行うことができます。JSON 形式を宣言し、クラス内で JSON に変換する方法を見つけたいと思っています。

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

scala - Scala は名前を付けずに値を暗黙のスコープに持ち込む

Spray-jsonを使用する場合、シリアル化JsonFormat[A]するすべてのドメイン タイプの暗黙的なスコープにを持ち込む必要があります。A

推奨されるアプローチは、フィールドとしてすべての Implicit を持つカスタム オブジェクトを作成することです。

私のアプリには非常に多くのドメイン タイプがあり、そのうちのいくつかは長い名前を持っています。私のMyJsonProtocolは長くなって読めなくなっています:

long val 名にはさまざまな問題があります。

  • 彼らは冗長だと感じます(名前は決して読まれません)
  • 彼らは私のセリフをとても長くします
  • 形式の名前が形式のタイプと一致しないというコピー/貼り付けのリスクが発生します
  • これらは RHS 値を整列させないため、ここに共通のパターンが隠されています。

名前を付けずにオブジェクトを暗黙のスコープに入れる方法はありますか? このようなものは、はるかにきれいになります:

...しかし、Scala は「_」という名前の複数のフィールドを許可しません。

それらすべてに名前を付けずに、これらの形式を暗黙のスコープに入れる方法はありますか? この問題を回避する別の方法で、spray-json を使用することはできますか?

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

scala - 暗黙的な FromRequestUnmarsharell が見つかりません

ドメイン オブジェクトをリクエスト/レスポンス ボディ パラメータとして使用しようとしています。スプレールーティングを使用しas[T]て、オブジェクトを非整列化しています。しかし、常に私は得てcould not find implicit value for parameter um: spray.httpx.unmarshalling.FromRequestUnmarshallerいます。暗黙のアンマーシャラーを手動でコンパニオン オブジェクトに追加しましたが、同じエラーが発生します。何が悪いのかわかりません。joda DateTime オブジェクトをシリアル化する必要があるため、この Event 用の JSON シリアライザー/デシリアライザーを作成しました。

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

json - Spray.io は json ディレクティブを検証します

Spray.IO を使用して、JSON 入力を受け取るサービスを構築しています。フィールドのいくつかをチェックして、JSON ペイロードを検証したいと考えています。

JSON スキーマの検証やエラーの解析には興味がありませんが、代わりにフィールドの実際の型のようにフィールド値をチェックします (つまり、整数と浮動小数点数)。

Scala require を使用すると例外が発生し、単一のリクエストで見つかったすべての検証エラーをクライアントに通知できないため、私は Scalaのrequireの使用には興味がありません。

これに対する組み込みのディレクティブ/拒否はありますか?

Play ( http://www.playframework.com/documentation/2.2.1/ScalaJsonRequests ) で似たようなものを見たことがありますが、何も組み込まれていない場合、自分で何かを構築するにはどうすればよいでしょうか?

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

scala - スプレーで Scala ケース クラスを使用して、Ember データの名前付きルートで JSON を (アン) マーシャリングします。

私は RESTful インターフェイスを作成しています。JSON をマーシャリングおよびアンマーシャリングして Ember Data に対応させたいと考えています。問題は、Ember Data がエンティティ名を必要としており、私が試した 2 つのライブラリ、spray-json と json4s は、これを簡単に実行できないように見えることです。

必要なEmber データ形式

現在のデフォルト形式:

これは、ケース クラスから取得する必要があります。

次のカスタムコードで実行しました:

そのコードは恐ろしく壊れやすく、醜いように見えasInstanceOfます(0)

私がScalaでSprayで書いていることを考えると、名前付きルートのJSON出力を取得する良い方法は何ですか? 私は、Spray と適切に統合され、適度にパフォーマンスの高い JSON ライブラリでこれを行うことができて非常に満足しています。

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

json - json マーシャリングをスプレーする

私は、いくつかのモデルを適切に一般化できる JSON API を作成しようとしています。私はスプレーの初心者なので、非常に単純化された例でスパイクを開始しました。

ただし、次のコードで何が起こっているのかわかりません...

両方輸入しました

  • 私のカスタム暗黙と
  • Spray.httpx.SprayJsonSupport._

私が理解しているように、これは JsonFormat から Marshaller に変換できる暗黙のスコープを持つために私がしなければならないことです。

コンパイラ エラー:

TestService.scala:15: パラメータ um の暗黙的な値が見つかりませんでした: Spray.httpx.unmarshalling.FromRequestUnmarshaller[my.company.Test[my.company.X]]

コード:

助けていただければ幸いです。前もって感謝します。

解決した

解決策は(@jrudolpが示唆したように)次の両方でした:

  • 暗黙の定義をファイルの上に移動します (驚くべきこと)
  • JsonFormat ではなく RootJsonFormat を作成します。
0 投票する
1 に答える
577 参照

scala - Spray-json JsNumber BigDecimal isValid* 奇妙さ

誰かが私にこれを説明できますか:

私は、Scala 2.10.3 で、spray-json 1.2.6 を使用しています。これらは私の libraryDependencies です。

"io.spray" %% "spray-json" % "1.2.6"

ありがとう、グレガ

0 投票する
3 に答える
1837 参照

scala - スプレー クライアント - 予期しないコンテンツ タイプの応答をアプリケーション/json として扱いますか?

そのようなAmazon IDデータを取得しようとすると

適切なケース クラスとフォーマッタを使用すると、次の例外が発生します。

UnsupportedContentType ('application/json' が必要です)

Amazon がレスポンスをtext/plainコンテンツ タイプとしてマークするためです。また、 Acceptヘッダー パラメータも気にしません。アンマーシャリング時にこれを無視するようにspray-jsonに指示する簡単な方法はありますか?