問題タブ [jms-serializer]
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 - API レベルに応じた JMS シリアライゼーション JSON ラベル名の変更
私は Symfony で jms/serializer-bundle を使用し、YML 形式のシリアライゼーション構成を使用して、一部の Doctrine オブジェクトを JSON としてシリアライズしています。
既存の API は、一部のラベルがアンダースコアで命名されたことを意味します (例: "created_on")。
しかし、私はこれを新しい API バージョンに合わせて整理し、新しい API 呼び出しに対してキャメルケースで応答を返したいと考えています。
JMSシリアライザーの「Until」および「Since」構成を使用して、エンティティのプロパティを2回参照できることを期待/考えていました。1つは古いserialized_nameで、もう1つは新しいserialized_nameです。
しかし、明らかにこれは機能しません。また、「2.1」バージョンを virtual_properties に変更し、別のグループ名を使用しようとしましたが、それも機能しませんでした。
プレーンな SerializerBuilder/SerializationContext クラスを使用していた場合、次のようなことができるように見えます。
とにかくすべてをキャメルケースに強制します。
でも僕はそうじゃない。私は jms_serializer サービスを使用しており、必要なシリアライゼーション グループをサポートするためにそのインフラストラクチャに依存しています。また、dependency_injection を介して独自のバージョンを構築する方法がわかりません。これは、私の「新しい」のために、別の命名戦略を採用しています。 API 応答。
誰かがこれを行う方法を持っていますか?
symfony - JMSSerializerBundle - 同じプロパティのシリアル化された複数の名前
私は次のことをしようとしています:
1つのクラスの同じプロパティに json を使用するときに、xml を (デ) シリアル化するときにシリアル化された名前の 1 つのセットと別のセットが必要ですか?
別の構成ファイルを使用して手動でこれを行うことができ、シリアライザービルダーを使用して手動でロードしました。
sf コンテナーから jms_serializer サービスを使用して同様のことを行うことは可能ですか?
これを実装するための他のスマート/簡単な方法はありますか?
次のような重複したプロパティとグループを使用することはできません。
jms-serializer - JMSSerializer の xml 形式を変更する
私はこのような配列を持っています:
それをxmlとしてシリアル化することで、次のような結果が得られると予想していました。
しかし、私は得る:
上で説明した方法で JMSSerializer を使用して xml を取得するにはどうすればよいですか? Annotation でこれが可能であることはわかっていますが、php で行う必要があるため、xmlRoot や xmlValue などをセットアップするにはどのメソッドを呼び出す必要がありますか?
php - PreSerializeEvent でエンティティを呼び出すメソッドを変更するには?
Category
の束を含むエンティティがありますAssets
。カテゴリには、getCount
その中のアセットの量を返すメソッドがあります。
FosRestBundle と JMSSerializerBundle を使用して、Category アセットを json にシリアル化します。現在、さまざまな種類のアセット (external
と など) を導入する機能変更がありましinternal
た。
私はまだエンティティのシリアライゼーションを使いたいと思ってPreSerializeEvent
います。
ただし、シリアライザー コンポーネントのドキュメントは、関連する部分を次のように参照することでわかりにくくなっています。do something
ここで実際に何かを行うにはどうすればよいですか?
私が達成したいのは、フラグが設定されている場合に呼び出されるメソッドを変更することです。シリアライザーの通常のケースでは、メソッドを使用する必要がありますが、シリアル化されているgetCount
場合はgetExternalCountOnly
、Category オブジェクトのメソッドを使用する必要がありますgetCount
。
これは実際にここで行うことができますか、それとも間違った方向に進んでいますか?
私を参照してくださいCategorySerializationSubscriber
:
symfony - JMSSerializer がエンティティをシリアライズしていない
JmsSerializerBundle と FOSRestBundle を使用して、シリアライズされたエンティティ レスポンスを取得しようとしています。残念ながら、応答に問題があるため、そうすることができません..システムがファイルを認識しているかどうかわかりませんEntity.SearchEngine.yml
機能しない理由を見つける方法はありますか?
Rest アクション (FOSRestBundle を使用):
私が得ている応答は
{
0: { }
}
symfony - 教義 2: 遅延読み込み/プロキシ生成を無効にします。
Doctrine 2 を使用して、次のいずれかを実行できますか?
- 生成されたプロキシ クラスからプロパティを除外しますか?
- 遅延読み込み/プロキシ生成を完全に無効にしますか?
エンティティのシリアル化に問題があります (Symfony と JMS シリアライザーを使用)。クエリで明示的に取得した関連エンティティのみをシリアル化したい。
fe JMS シリアライザーを使用する場合、Doctrine 2 の遅延読み込みを無効にしますか?で説明されている解決策 部分的にしか機能していません。仮想プロパティがある場合:
関連するクラスは、シリアル化プロセスでプロキシを介してロードされます。
json - JSMSerializerBundle を使用した多次元 JSON API レスポンスのデシリアライズ
私は Symfony2/JSMSerializerBundle を使用しています。
フラットな json オブジェクトを PHP オブジェクトにシリアライズするとうまくいきます。しかし、私が使用する API は、多次元の Json 応答を提供します。
}
逆シリアル化された PHP として、次のようなものが必要です。
)
これを行う方法のヒントは誰にありますか?
ありがとう!
php - JMS シリアライザーが特定のフィールドをキーとするオブジェクトを出力するように強制する
エンティティPropertyと一対多の関係を持つエンティティProductがあります。JMS シリアライザーを使用して製品インスタンスをシリアライズすると、次の JSON 出力が得られます。
特定のフィールドがキーとして使用されるオブジェクトとしてプロパティ コレクションをシリアル化するシリアライザーを取得しようとしています。たとえば、名前フィールド。望ましい出力は次のとおりです。
これを達成するための最良のアプローチは何ですか?