問題タブ [spring-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 に答える
828 参照

java - Spring と Gson - 特定の条件でのみフィールドを公開する

オブジェクトのシリアル化にSpringとGsonを使用しています。

@Exposeアノテーションを使用するモデル オブジェクトがあります。

Zoneオブジェクトリストをユーザーに提供する2つのコントローラーがあります。

問題はList<String> longListvar です - 通常、多くのエントリがあります (Stringこれは単なる例であり、コードでは複雑なオブジェクトである可能性があります)。

getFullZones()はこれを使用してユーザーゾーンにサービスを提供したいのですlongListが、ゾーンを使用getSimpleZones()せずにサービスを提供したいですlongList(クライアント側ではまったく使用されません)。

どうやってするか?

ゾーンを使用してリストを反復処理しlongList、null に設定することはできますが、これはあまり洗練されたソリューションではありません。

私はこのようSpringに使用するGsonように設定しています:

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

java - Java Spring Data JPA および REST API: ネストされた JSON オブジェクトのフィールドを除外

現在、REST API サービス用に Spring Boot Web 2.2.1 で Spring Data JPA 2.2.1 を使用しています。

/categoriesへの getter 呼び出しは、実際には望ましい結果である次の JSON を返します。

エンティティ:

コントローラ:

リポジトリ

データサービス

すべてのフィールドを返すわけではない/limitedCategories API への新しい呼び出しを追加したいと考えています。たとえば、親エンティティの「category2」と、ネストされたエンティティの「field4」は除外されます。

問題:

  • JPA リポジトリ内で目的のフィールドを手動で選択することができず、ネストされたオブジェクトを処理する方法もわかりません。
  • findAll を使用し、@JsonIgnore を使用してそれらのフィールドを除外するという単純なアイデアは、最初のリクエストにはまだそれらのフィールドが必要であるため、不可能です。
  • リポジトリ内で @Query アノテーションを使用して目的のフィールドのみを取得すると、JSON のネストされたフィールドを取得する方法が見つかりません。

前もって感謝します。

Spring Data JPA 2.2.1 と Spring Boot Web 2.2.1 を使用しています。

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

java - Java Spring Web - バリデータでサブプロパティをオブジェクトに変換

コントローラーサービスモデルと検証でSpring Webを使用しています。Color オブジェクトと Color サービスがあります。

コントローラーの 1 つで、オブジェクトを受け入れています。

ご覧のとおり、eventColorサブプロパティのタイプはColorです。ただし、送信者が色の名前だけを送信できるようにしたいです (色は多くなく、とにかくメモリにキャッシュされています)。

文字列型の色とバリデーターを使用して色が存在することを確認できることは知っていますが、それを Color にキャストする方法はありますか?

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

spring-boot - 多対多の関係におけるjsonの無限再帰

多対多の関係を使用している場合、json で無限ループになるため、@JsonBackReference と @JsonManagedReference を使用しましたが、以下のように返されます

/api/peoples を検索したとき

/api/banks を検索すると、人ではなく銀行のみが返されます

]

最初のもののように /api/banks でも人を返す方法を解決するのを手伝ってください