問題タブ [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.

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

php - JMSSerializationBundle は、グループに基づく属性でシリアライズできません

Product クラスで指定したグループに基づいてシリアル化しようとしています。完全な製品クラスはここで見ることができます。ドキュメントの例に従って使用しているコードは次のとおりです

したがって$param、上記は基本的に Product オブジェクトの配列です。

ただし、何らかの理由で、これでも不要な製品属性がすべて出力されます (つまり、「マーケットプレイス」ではない他のグループに属する属性)。たとえば、属性「説明」。説明を「詳細」グループに含めるようにマークしましたが、「マーケットプレイス」グループを要求したときに応答の一部として返されるのはなぜですか?

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

symfony - JMS シリアライザー 抽象親クラスでデシリアライズする

逆シリアル化したいさまざまなプロパティを持ついくつかの子を持つ抽象親(マップされたスーパー)クラスがあります。私は MongoDB と Doctrine ODM を使用してデータを保存しているので、doctrine にどのサブクラスが使用されているかを伝える識別子フィールドもあります (また、他の場所でどのクラスが現在処理されているかを判断するために使用されるカスタムの「タイプ」プロパティもあります)。

モデルをデシリアライズすると、抽象クラスのインスタンスを作成することは不可能であるという例外が発生します (もちろん) - JMS デシリアライザーにどの継承クラスを使用する必要があるかを伝える方法を考えています (それが私が使用する理由です)。typeたとえば、カスタムインスタンス変数 - doctrine の識別子フィールド マッピングにアクセスできないため)。

私はうまくフックすることができpreDeserializeEventます - それで、そこにいくつかのスイッチ/ケースを作ることができるかもしれません(またはを使用して)?

要するに私のモデル(抽象クラ​​ス):

サブクラスの 1 つ

もう 1 つのテストは、Module クラスを抽象化せず、カスタムの静的メソッドを作成することでした。

何か案は?

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

json - エンティティで JMSSerializerBundle を使用してオブジェクト プロパティをシリアル化する

jmsserializerbundle を使用してオブジェクトをシリアル化すると、正しい JSON オブジェクトが取得されますが、1 つのプロパティが空 (オブジェクト型) であり、このプロパティの定義は次のようになります。

ただし、このエンティティにオブジェクトがある場合でも、シリアライザーは次のように出力します。

{ "id": 10, "search_query_params": {}, "created": "2013-07-02T10:31:02+0200" },

単なる空のオブジェクトです。with は true ではありません。これは、DB の searchQueryParams の値です。

O:8:"stdClass":2:{s:4:"name";s:8:"Greacja2";s:10:"price_from";s:4:"2000";}

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

symfony - 依存オブジェクトを使用して Symfony2 のエンティティをシリアル化する方法

Product エンティティと ProductList エンティティがあります。

json にその ProductList に関連する Product オブジェクトが含まれるように、ProductList オブジェクトを json にシリアル化 (および逆シリアル化) することは可能ですか?

予想される出力は次のとおりです。

Symfony2 組み込みシリアライザーと JMS\Serializer を使用していますが、うまくいきません。

これを行う方法はありますか?

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

symfony - JMS シリアライザは、継承を使用してドクトリン エンティティをデシリアライズします

継承を使用する Doctrine Entity があります。

また、コンテンツ エンティティのコレクションを含むアイテム エンティティもあります。JMSSerializer を使用してこれらのエンティティを XML にシリアル化すると、discr 列が表示されます。

XML を逆シリアル化したい場合、コンテンツ クラスを除いて、期待どおりの結果が得られます。それらはすべて \Namespace\To\Entity\Content オブジェクトです。この方法では、変更をデータベースに保存できません。

上記のコード例では、@Discriminatorアノテーションを使用してエンティティ タイプを指定しようとしましたが、うまくいきません。どうすればこれを機能させることができますか?私は近いと思いますが、アイデアがありません。

編集

親クラスに次の変更を加えた場合:

そして、適切に機能するテキスト要素のみを追加しますが、他の要素を追加すると(もちろん)壊れます。

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

symfony - FOSRestBundle のシリアライザーは、継承されたエンティティを使用して再帰エラーをスローします

抽象クラスを継承するアプリケーションを開発しています。これらの抽象クラスには、次の例に示すように、シリアライザー用の独自のマッピングがあります。

そして抽象クラス:

前のクラスを継承するクラスは次のようになります

スローされたエラーは次のように述べています。

確かに、エンティティが公開されておらず、マッピングによると「登録済み」エンティティの 3 つのフィールドだけが公開されているため、私は何か間違ったことをしていますが、手がかりはありません。私は成功せずに間違いが何であるかを理解しようとして数日を費やしました。

継承されたプロパティのマッピングを行う適切な方法は何ですか?

アップデート

FOSRestBundle を使用して JSON をシリアル化するために使用されるコード:

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

symfony - FOSRestBundle および JMSSerializer ランタイムの公開

私の Symfony2 API は、FOSRestBundle と JMSSerializer をプロパティ アノテーションと共に使用していますが、すべてのプロパティを公開したくない場合がよくあります。JMS に除外グループがあることは理解していますが、それらを Symfony コントローラーに含める方法がわかりません。動的ベースで PHP を使用する方法があるはずですが、それもドキュメントから欠落しているようです。