問題タブ [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 投票する
5 に答える
11824 参照

php - JMSシリアライザーを使用しているときにDoctrine 2遅延読み込みを無効にしますか?

Zend プロジェクトで Doctrine 2 ORM を使用しており、いくつかのケースでエンティティを JSON にシリアル化する必要があります。

ATM Querybuilder を使用して、必要なすべてのテーブルを結合します。しかし、私のシリアライザーは、Doctrine が関連付けられたすべてのエンティティを遅延ロードするようにします。その結果、かなり膨大な量のデータが発生し、再帰が引き起こされます。

Doctrines の遅延読み込み動作を完全に無効にする方法を探しています。

データを選択する私の方法は次のとおりです。

選択したテーブルと関連付けのみを結果セットに含めたいと思います。

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

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

symfony - JMSSerializerBundle を使用して適切なハイパーメディア形式を作成するには?

次のような XML 応答を作成したいとします。

次のようなドメイン モデルがあるとします。

そして、次のようなマネークラス:

さて、私の質問に。次のような応答を作成するのは非常に簡単です。

アノテーション、XML または YAML のいずれかを使用して、JMSSerializerBundle に製品オブジェクトをシリアライズする方法を指示します。ただし、xmlns:atomおよび<atom:link>エントリはエンティティによって指定されるべきではありません。これは、それがどのように、どこに配置されているかという概念を持たないためです。relなど、さまざまな属性を持つリンクをさらに想像することもできますedit
頭に浮かぶ 1 つの解決策は、特定のオブジェクトのシリアル化イベントをリッスンし、これらの属性とタグを適切に追加するサービスです。サービスは DI を使用してRequestRouterサービスなどを取得し、要求された形式に適した形式でこれらのリンクを生成できます。XML 応答の IE では、適切なタイプを次のように設定できます。application/media-format+xml、一方、json-response では、次のようなものを生成できます

現在、JMSSerializerBundle のドキュメントで@PreSerialize、 、 、およびの注釈を見つけまし@PostSerializeたが、シリアル化されているオブジェクトのメソッドしか呼び出せないようです。
これが達成できるかどうか/方法を知っている人はいますか? それとも、Twig などのテンプレート エンジンを使用して手動で XML 応答を作成する必要がありますか?

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

php - JMSSerializerBundle が JSON の文字列として double を返す

JMSSerializerBundleそのため、Symfony2 プロジェクトで を使用して、クライアント用の JSON を生成しています。これは Doctrine2 エンティティをシリアライズしており、1 つの例外を除いて魅力的に機能します。すべての double/decimal 値は結果の JSON の文字列であり、これはクライアントを混乱させます。

シリアル化されたエンティティは次のようになります。関連する属性/ゲッターのみをここに貼り付けました。

緯度/経度の値は、次のように JSON に表示されます。

引用符を取り除くにはどうすればよいので、文字列ではなく JSON の数値になりますか? これは本当に簡単なはずですが、この問題についてドキュメントやオンラインで何も見つかりません。誰かが私に手を貸してくれることを願っています!

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

php - 特定のタイプのJMSSerializerBundle変換

Doctrine2と組み合わせてSymfony2プロジェクトでJMSSerializerBundleを使用しています。

クラスプロパティは製品価格を表すため、double値として定義しました。

末尾がゼロの値(100ではなく100.00)を表示する必要があります。シリアライザーは実際に彼がdouble値で作業していることを知っているので、この変換を逆シリアル化にフックしたいと思います。

影響を受けてはならない他のプロパティがあるため、戦後にすべての数値をキャストすることはできません(数量など、整数のままである必要があります)。

この問題に関するアイデア/ヒントはありますか?

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

symfony - LogicException: コンテナ拡張機能「jms_serializer」が登録されていません

FosComment バンドル、FOS Rest バンドル、JMS シリアライザーを追加しようとしています。

エラー LogicException: Container extension "jms_serializer" is not registered が表示されます

それらがインストールされているとき。
\誰でもこの問題を解決することを提案できますか

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

symfony - JMSSerializer コレクションのデシリアライズ

教義コレクションのシリアライズされたコレクションのデシリアライズに問題があります。それとトピックに関するドキュメントが見つかりませんでした。私は JMSSerializer を初めて使用します。私がデシリアライズしようとすると:

$コレクションは空です

クラス名の代わりにnullに設定すると、結果に連想配列があります。そのjsonを逆シリアル化するエレガントな方法はありますか?

編集:申し訳ありません。ここに連載コレクションがあります:

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

symfony - JMSSerializerBundle ドクトリン エンティティの更新

逆シリアル化された Doctrine エンティティに問題があります。シリアル化されたオブジェクトには、エンティティのすべてのフィールドが含まれているわけではなく、それらを更新すると、フィールドが null に設定されます。同じ問題がここにあると思いますが、JMSSerializer + Doctirne の使用に関する解決策はありません。

よろしく

0 投票する
3 に答える
7285 参照

symfony - 関係を持つエンティティーの JMSSerializerBundle シリアライゼーション・グループ

グループを使用して多くの関係を持つエンティティをシリアル化する際に問題があります。この方法で関連エンティティをシリアル化する際に問題があります。

Product と関連する Element という 2 つのエンティティがあるとします。

要素エンティティは同様の構造を持っています:

私の問題は、「詳細」グループ エンティティを使用して製品をシリアル化するときに、要素の ID のみをシリアル化したいのですが、ご覧のとおり、エンティティが製品と同じグループを定義していることです (要素オブジェクトの詳細が必要な場合)。すべてのエンティティでグループを統合し、'product_details'、'element_details' などの何百ものグループを作成しないようにします。

リレーションなどにアクセスしたときに最終的にシリアル化グループを変更する方法はありますか? 多分ハンドラーかそのようなものですか?

よろしくお願いします。

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

serialization - JMSSerializerBundle。サードパーティのメタデータを制御できない

JMSSerializerBundle でシリアライズしたいエンティティが 2 つあります。エンティティにはのMusicマッピング ファイルがありexclusion_policy: NONEます。

エンティティには、からのMusicエンティティのフィールドがあります。エンティティには、いくつかのフィールドが に設定されたマッピング ファイルがあるため、シリアル化されます。UserFOSUserBundleUserexclusion_policy: ALLexpose: true

問題は、Userフィールドが完全にシリアル化されることです。Userエンティティのマッピング ファイルを変更しても問題ありません。

これはどのように見えるかです:

独自のマッピング ファイルを参照しないのはなぜですか? それとも私はどこか間違っていますか?

これまでに何を試しましたか

サードパーティのメタデータ ドキュメントを読みました。シリアライザ サービスに新しいディレクトリを追加するように指示するだけです。私はそれをしましたが、FOS\UserBundle\Entityクラスを拡張する必要があり、除外しようとしている親の保護フィールドにもアクセスできません。

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

arrays - ReflectionException:クラスArrayCollectionが存在しません

モバイルダイジェスト用にエンティティをシリアル化しようとしています。私はこのエンティティクラスを持っています:

今、私がこの行を私の中で呼び出すときDefaultController.php

にありますuse Doctrine\Common\Collections\ArrayCollection;DefaultController.php、エラーは内部から発生しているようJMSSerializerBundleです。

これまでに何を試しましたか

  • Doctrineで始まる注釈を定義しようとしました\が、それは役に立ちませんでした
  • キャッシュを100万回クリアしました
  • 同様の例外を検索しましたが、すべてタイプミスが原因であると思われ、過去48時間タイプミスをチェックしましたが、見つかりません。

クラスはで自動生成されましapp/consoleた。