問題タブ [json-view]

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

spring-mvc - Spring MVC コントローラーでの JsonView の動的選択

@JsonView(...)Spring MVC で単一のビュー クラスを静的に定義するために、コントローラー メソッドにアノテーションを付けることが可能であることを認識しています。残念ながら、これは、可能性のあるビューの種類ごとに異なるエンドポイントが必要であることを意味します。

私は他の人が以前にこれを尋ねたのを見ます。このアプローチはうまくいくかもしれませんが、Spring には多くの場合、同じことを行う多くの方法があります。いくつかの内部構造について少し知識があれば、ソリューションが最初に表示されるよりもはるかに単純になることがあります。

現在のプリンシパルに基づいて適切なビューを動的に選択できる単一のコントローラー エンドポイントが必要です。適切なビュー クラスまたはインスタンスを直接Model含む属性を持つを返すことは可能ですか?MappingJacksonValue

org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter#writeInternal使用するビューを決定するコードのスニペットがあることがわかります。

これは由来のようですが、正しいビューを選択するorg.springframework.web.servlet.mvc.method.annotation.JsonViewResponseBodyAdvice#beforeBodyWriteInternalために必要な情報を含む特定の値を返すだけでこれを回避できる方法があるかどうか、うまくいきません。Jackson2HttpMessageConverter

どんな助けでも大歓迎です。

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

java - @JsonView が機能しない (Spring 4.1.5、Jackson 2.5.1)

Entity に @JsonView アノテーション付きのフィールドがあります。

私のコントローラー内:

私のビュークラス:

応答には「パスワード」フィールドのみが含まれると予想していましたが、代わりに何も含まれていません。コントローラーから注釈を削除する@JsonView(View.Secure.class)と、通常どおり機能し、すべてのフィールドが返されます。私は何を間違っていますか?Spring 構成に追加の構成を追加する必要がありますか?

このチュートリアルを使用しました: https://spring.io/blog/2014/12/02/latest-jackson-integration-improvements-in-spring

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

json - JsonView を選択して、実行時に HttpResponse をシリアル化します

Jackson を使用して、スプリングでバックアップされた resteasy REST API 実装があります。

実行時に (リソース クラス内で) HttpResponse をシリアル化するために使用する JsonView を決定したいと考えています。

カスタムシリアライザーを試していますが、オブジェクトマッパーが設定された後にビューを構成できないようです。それを行うためにどのようなアプローチが実現可能でしょうか?

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

java - Spring MVC レスト コントローラー全体の @JsonView 宣言

@JsonViewSpring MVC レストコントローラー全体を宣言する方法はありますか?

@JsonView次のような特定のメソッドを宣言できることはわかっています。

しかし@JsonView、私のメソッドは夕食クラスで定義されており、単一の注釈を追加するためだけにメソッドをオーバーライドしたくないため、メソッドごとに定義したくありません。コントローラー全体、つまり次のよう
に宣言したいと思います。@JsonView

これを達成する方法はありますか?

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

jackson - Jackson - 実行時にアクティブな JsonView を見つける方法

JPAエンティティをラップするUIオブジェクトがあり、そのUIオブジェクトのコンストラクターで、いくつかのプロパティの遅延読み込みを行います。その同じコンストラクターで、現在アクティブになっている JsonView を知る必要があるため、List ビューなどの不要なフィールドを遅延ロードしません。コンストラクターから、実行時に現在アクティブな JsonView を見つける方法はありますか。または、私が上で説明したことを達成する他の方法はありますか。

私の現在の計画 では、シリアル化中に、シリアル化するオブジェクトの setJsonView(Class jsonView) を呼び出すカスタム シリアライザーを作成します。シリアル化されたすべてのオブジェクトは、そのメソッドをサポートする必要があります。その metid 内で、現在知られている json ビューに基づいて遅延読み込みを行うことができます。このようなもの:

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

java - 特定のプロパティの JsonView を変更する方法

こんにちは、相互に埋め込まれた UI オブジェクトはほとんどありません。例 #1:

ご覧のとおり、UserUI をパブリックとしてシリアル化すると、名前のみが公開されますが、プライベートの場合はすべてのフィールドが公開されます。

これが私の質問です: オブジェクト CarUI をシリアル化するときに、「ユーザー」の名前のみを公開し、「エージェント」の名前と電話の両方を公開したいと考えています。つまり、getUser() のゲッターで JsonView を Views.Public.class に変更し、getAgent() のゲッターで Views.Private.class に変更したいということです。

この新しいJsonViewを使用して、返されたオブジェクトのすべての階層をシリアル化するために、ゲッターでJsonViewを上書きする方法はありますか?

編集 済み 以下に示すように、JsonView 継承を使用して私の例 #1 を解決できます。より一般的なものはどうですか。例 2 は次のとおりです。

この例では、エージェントには名前と電話、ユーザーには名前とアバターの URL を表示します。

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

java - コントローラーへの AJAX 呼び出しを有効にするために @JsonView(Views.Public.class) を追加する必要がありますか?

最近、AJAXがコントローラーを呼び出してJSON結果を返すことができるように、小さなWebアプリを構築しようとしています。追記了解です

シリアル化したくないすべてのフィールドを除外するフィルターとして機能します。基本的に、この JsonView でアノテーションが付けられていないすべてのフィールドは除外されます。

私の質問は次のとおりです。Springコントローラーでは、JsonViewに注釈を付ける必要がありますか? コントローラーにもモデルオブジェクトにも、それらをまったく含めない場合はどうなりますか?

リンク/記事は大歓迎です。ありがとうございました!

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

firefox-developer-tools - Firefox Developer Edition で新しい JSON Viewer/Reader を無効にするにはどうすればよいですか?

Firefox Developer Edition 44には JSON Viewer が組み込まれました。これは素晴らしいジェスチャーですが、私が使用していたサードパーティの JSON ビューアーの読みやすさが非常に気に入っています。

新しいビルトイン JSON ビューアーを無効化、オーバーライド、またはカスタマイズする方法はありますか?