問題タブ [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.
php - JMSシリアライザーを使用しているときにDoctrine 2遅延読み込みを無効にしますか?
Zend プロジェクトで Doctrine 2 ORM を使用しており、いくつかのケースでエンティティを JSON にシリアル化する必要があります。
ATM Querybuilder を使用して、必要なすべてのテーブルを結合します。しかし、私のシリアライザーは、Doctrine が関連付けられたすべてのエンティティを遅延ロードするようにします。その結果、かなり膨大な量のデータが発生し、再帰が引き起こされます。
Doctrines の遅延読み込み動作を完全に無効にする方法を探しています。
データを選択する私の方法は次のとおりです。
選択したテーブルと関連付けのみを結果セットに含めたいと思います。
どんな助けでも大歓迎です。
symfony - JMSSerializerBundle を使用して適切なハイパーメディア形式を作成するには?
次のような XML 応答を作成したいとします。
次のようなドメイン モデルがあるとします。
そして、次のようなマネークラス:
さて、私の質問に。次のような応答を作成するのは非常に簡単です。
アノテーション、XML または YAML のいずれかを使用して、JMSSerializerBundle に製品オブジェクトをシリアライズする方法を指示します。ただし、xmlns:atom
および<atom:link>
エントリはエンティティによって指定されるべきではありません。これは、それがどのように、どこに配置されているかという概念を持たないためです。rel
など、さまざまな属性を持つリンクをさらに想像することもできますedit
。
頭に浮かぶ 1 つの解決策は、特定のオブジェクトのシリアル化イベントをリッスンし、これらの属性とタグを適切に追加するサービスです。サービスは DI を使用してRequest
、Router
サービスなどを取得し、要求された形式に適した形式でこれらのリンクを生成できます。XML 応答の IE では、適切なタイプを次のように設定できます。application/media-format+xml
、一方、json-response では、次のようなものを生成できます
現在、JMSSerializerBundle のドキュメントで@PreSerialize
、 、 、およびの注釈を見つけまし@PostSerialize
たが、シリアル化されているオブジェクトのメソッドしか呼び出せないようです。
これが達成できるかどうか/方法を知っている人はいますか? それとも、Twig などのテンプレート エンジンを使用して手動で XML 応答を作成する必要がありますか?
php - JMSSerializerBundle が JSON の文字列として double を返す
JMSSerializerBundle
そのため、Symfony2 プロジェクトで を使用して、クライアント用の JSON を生成しています。これは Doctrine2 エンティティをシリアライズしており、1 つの例外を除いて魅力的に機能します。すべての double/decimal 値は結果の JSON の文字列であり、これはクライアントを混乱させます。
シリアル化されたエンティティは次のようになります。関連する属性/ゲッターのみをここに貼り付けました。
緯度/経度の値は、次のように JSON に表示されます。
引用符を取り除くにはどうすればよいので、文字列ではなく JSON の数値になりますか? これは本当に簡単なはずですが、この問題についてドキュメントやオンラインで何も見つかりません。誰かが私に手を貸してくれることを願っています!
php - 特定のタイプのJMSSerializerBundle変換
Doctrine2と組み合わせてSymfony2プロジェクトでJMSSerializerBundleを使用しています。
クラスプロパティは製品価格を表すため、double値として定義しました。
末尾がゼロの値(100ではなく100.00)を表示する必要があります。シリアライザーは実際に彼がdouble値で作業していることを知っているので、この変換を逆シリアル化にフックしたいと思います。
影響を受けてはならない他のプロパティがあるため、戦後にすべての数値をキャストすることはできません(数量など、整数のままである必要があります)。
この問題に関するアイデア/ヒントはありますか?
symfony - LogicException: コンテナ拡張機能「jms_serializer」が登録されていません
FosComment バンドル、FOS Rest バンドル、JMS シリアライザーを追加しようとしています。
エラー LogicException: Container extension "jms_serializer" is not registered が表示されます
それらがインストールされているとき。
\誰でもこの問題を解決することを提案できますか
symfony - JMSSerializer コレクションのデシリアライズ
教義コレクションのシリアライズされたコレクションのデシリアライズに問題があります。それとトピックに関するドキュメントが見つかりませんでした。私は JMSSerializer を初めて使用します。私がデシリアライズしようとすると:
$コレクションは空です
クラス名の代わりにnullに設定すると、結果に連想配列があります。そのjsonを逆シリアル化するエレガントな方法はありますか?
編集:申し訳ありません。ここに連載コレクションがあります:
symfony - JMSSerializerBundle ドクトリン エンティティの更新
逆シリアル化された Doctrine エンティティに問題があります。シリアル化されたオブジェクトには、エンティティのすべてのフィールドが含まれているわけではなく、それらを更新すると、フィールドが null に設定されます。同じ問題がここにあると思いますが、JMSSerializer + Doctirne の使用に関する解決策はありません。
よろしく
symfony - 関係を持つエンティティーの JMSSerializerBundle シリアライゼーション・グループ
グループを使用して多くの関係を持つエンティティをシリアル化する際に問題があります。この方法で関連エンティティをシリアル化する際に問題があります。
Product と関連する Element という 2 つのエンティティがあるとします。
要素エンティティは同様の構造を持っています:
私の問題は、「詳細」グループ エンティティを使用して製品をシリアル化するときに、要素の ID のみをシリアル化したいのですが、ご覧のとおり、エンティティが製品と同じグループを定義していることです (要素オブジェクトの詳細が必要な場合)。すべてのエンティティでグループを統合し、'product_details'、'element_details' などの何百ものグループを作成しないようにします。
リレーションなどにアクセスしたときに最終的にシリアル化グループを変更する方法はありますか? 多分ハンドラーかそのようなものですか?
よろしくお願いします。
serialization - JMSSerializerBundle。サードパーティのメタデータを制御できない
JMSSerializerBundle でシリアライズしたいエンティティが 2 つあります。エンティティにはのMusic
マッピング ファイルがありexclusion_policy: NONE
ます。
エンティティには、からのMusic
エンティティのフィールドがあります。エンティティには、いくつかのフィールドが に設定されたマッピング ファイルがあるため、シリアル化されます。User
FOSUserBundle
User
exclusion_policy: ALL
expose: true
問題は、User
フィールドが完全にシリアル化されることです。User
エンティティのマッピング ファイルを変更しても問題ありません。
これはどのように見えるかです:
独自のマッピング ファイルを参照しないのはなぜですか? それとも私はどこか間違っていますか?
これまでに何を試しましたか
サードパーティのメタデータ ドキュメントを読みました。シリアライザ サービスに新しいディレクトリを追加するように指示するだけです。私はそれをしましたが、FOS\UserBundle\Entity
クラスを拡張する必要があり、除外しようとしている親の保護フィールドにもアクセスできません。
arrays - ReflectionException:クラスArrayCollectionが存在しません
モバイルダイジェスト用にエンティティをシリアル化しようとしています。私はこのエンティティクラスを持っています:
今、私がこの行を私の中で呼び出すときDefaultController.php
:
にありますuse Doctrine\Common\Collections\ArrayCollection;
がDefaultController.php
、エラーは内部から発生しているようJMSSerializerBundle
です。
これまでに何を試しましたか
Doctrine
で始まる注釈を定義しようとしました\
が、それは役に立ちませんでした- キャッシュを100万回クリアしました
- 同様の例外を検索しましたが、すべてタイプミスが原因であると思われ、過去48時間タイプミスをチェックしましたが、見つかりません。
クラスはで自動生成されましapp/console
た。