問題タブ [jmsserializerbundle]
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.
symfony - 特定のフィールドを含めるかどうかを実行時に決定できるようにする JMS シリアライザーのカスタム除外戦略を作成するにはどうすればよいですか?
タイトルが示すように、シリアル化にフィールドを含めるかどうかを実行時に決定しようとしています。私の場合、この決定は権限に基づいて行われます。
私は Symfony 2 を使用しているので、セキュリティ表現を受け入れる @ExcludeIf という追加の注釈を追加しようとしています。
アノテーションの解析とメタ データの保存は処理できますが、カスタムの除外戦略をライブラリに統合する方法がわかりません。
助言がありますか?
注: 除外戦略は、JMS コードベースの実際の構成要素です。私は、エクストラを他のものの上に統合する最善の方法を見つけ出すことができませんでした。
PS: 以前にこれについて質問したことがあり、グループの使用を指摘されました。さまざまな理由から、これは私のニーズに対して非常に貧弱なソリューションです。
symfony - json ルートを jmsserializer に追加します
[xml_root_name][1]
XML を扱うときにを使用できることはわかっています。JSONでもこれを達成する方法はありますか?
現在、私の XML は次のようになっています。
そして、次の JSON があります。
私が本当にこれが欲しいとき:
rest - RESTful コントローラーでフォーム タイプの選択肢を提供する
restul symfony2 アプリケーションの次の単純なフォーム タイプを想像してください。
FOSRestBundleを使用して RESTful コントローラーを作成すると、このフォーム タイプを取得するための実装は次のようなものを返します{"children":{"description":[]}}
(JSON がデフォルトであると仮定します)。
選択肢をシリアル化することは可能でしょうか?またその方法は? それとも、ここで何か誤解していますか?この例では 3 つのハードコーディングされた選択肢しかありませんが、たとえば 20/30/40/… を持つエンティティはどうでしょうか? 要求元のクライアントにその情報を提供する方法が必要です。
php - JMS シリアライザ xml デシリアライゼーション タイプ
私はこのようなxmlを持っています。
そして実体
そのようなJMSシリアライザーを使用してデシリアライズしようとしています:
しかし、まだエラーメッセージが表示されます:
The array type must be specified either as "array<T>", or "array<K,V>".
symfony - JMS シリアライザー: オブジェクト グラフのシリアライゼーションの深さを制限する方法
たぶん、この注釈に対する私の誤解だけかもしれませんが、期待どおりに機能しません。
次のオブジェクトグラフがあります
ご覧のとおり、いくつかの再帰があります。JMS は、現在のユーザーだけでなく他のユーザーの会社のプロパティもシリアル化しないことで、これを適切に処理します。
しかし、私は連載をやめて、会社を含めてほしいです。
レベル $context->level = 2 になると停止することを期待して、これを試しました
しかし、そうではありません。コードをステップ実行しても、これを停止する方法はわかりません。
特定のパス、つまり User.Company に対してのみ呼び出すことができる場合は、カスタム ハンドラーを喜んで作成します。
次のグラフを持つ User.Groups にもこれが必要です
オブジェクトグラフのシリアル化の深さを制限する方法について、事前に感謝します