問題タブ [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.
php - JMSシリアライザーを使用してArrayCollectionのスライスをシリアライズするには?
Category
REST API に使用するエンティティのコレクションPresentation
(以下を参照) を使用して、 JSON エンティティにシリアル化したいと考えています。
エンドポイントは次のようになります/api/v1/categories/1
データセットが小さく、Category
関連するものが 5 ~ 10 個しかないPresentations
場合、結果の応答はそれほど大きくありません。ただし、Category
100 または 200 の関連があるとしましょうPresentations
。明らかに、それらすべてを返したくはありませんが、結果を「ページ分割」したいと思います。エンドポイントを呼び出す場合:
/api/v1/categories/1?page=2
- 「2 ページ目」のみを返す
/api/v1/categories/1/page=3
- 「3 ページ目」を返す
offset
または、 and を使用することもできますlimit
:
/api/v1/categories/1?offset=20&limit=10
しかし問題は、JMS シリアライザーがコレクションのスライスのみをシリアライズする方法です。
ps。たとえば、コレクションの最初の5 つの要素を常に取得したい場合は、以下に示すように、created を追加@VirtualProperty
して教義ArrayCollection
をスライスすることができます。しかし、ここでの問題は、オフセット パラメータをこのメソッドに渡すことができないことです。どこかで JMSSerializer によって内部的に呼び出されるため...
php - JMS シリアライザー エラー: オブジェクトにないときに $this を使用する
私は支払い処理ページに取り組んでいます。Authorize.net を使用してトランザクションを処理しています。Authorize の php ライブラリとそのすべての依存関係をインポートしました。
テスト トランザクションを処理しようとすると、次のエラーが発生します。
最初は自分のコードに何かあると思ったので、Authorize の php サンプル トランザクションを実行してみましたが、同じエラーが発生しました。
シリアライザーは、昨日 GitHub からダウンロードされたばかりです。https://github.com/schmittjoh/serializer
Authorize のサンプル コードは次のとおりです。
エラーの原因についてのアイデアはありますか?
symfony - 型を強制するのではなく、JSON のデシリアライズ時に JMS シリアライザーに例外をスローさせるにはどうすればよいですか?
Symfony2 の PUT リクエストから JSON を使用する REST API を作成しようとしています。JSON をエンティティに逆シリアル化することはある程度機能しますが、JSON 内のプロパティの型がエンティティの対応するプロパティと一致しない場合、JMS シリアライザーは例外をスローするのではなく、JSON から型を強制するようです。
たとえば…</p>
…結果は…</p>
…プロパティid
がエンティティで整数として定義されている場合。
しかし、代わりに JMS シリアライザーが例外をスローするようにしたいと考えています。これを達成する方法を知っている人はいますか?
2016-02-27 更新
私が見つけた JMS シリアライザーの型処理に関する 1 つの問題は次のとおりです。
結果は…</p>
これはまったく望ましくありません。
誰かが私を正しい方向に向けることができますか?
php - JSON を php オブジェクトにマップする
次の構造を持つ JSON がありますが、entries
ノード内のデータにのみ関心があるため、DTO クラスのフィールドはノード内のタグをミラーリングします。しかし、JMSserializer は JSON 内のすべてのタグのフィールドを含むオブジェクトを想定しているため、JSON をデシリアライズすると、予想どおりエラーが発生します。他のタグを無視する方法はありますか? これを達成する適切な方法は何ですか?
symfony - JMS のデシリアライズ後に Doctrine が関連するエンティティを更新するのはなぜですか?
私は Symfony2 プロジェクトで Doctrine+JMSserializer を使用していますが、典型的な JMS の「デシリアライズ」および Doctrine の「永続化」操作中に、関連するエンティティとそのデータが侵害される可能性があるという問題を発見しました。
そして、新しい $entity 関連の Page エンティティ名の通常の永続化操作の後、変更されるため、問題になります。
目標は、レビューのページ ID を設定することですが、他のプロパティの変更を防止します。そうしないと、ページ エンティティが危険にさらされる可能性があります。注釈、教義設定などを変更してこの問題を解決しようとしました。この問題を自然な方法で解決する方法はありますか?
レビューとページのエンティティ:
symfony - 特定のグループがシリアル化されている場合、JMS @Discriminator フィールドが表示されない
Symfony 2.8、FOSRestBundle、および JMSSerializerBundle を使用しています。
問題
entity の特定のグループ (次の例では「api」グループ) をシリアル化すると、エンティティのDiscriminator フィールドtype
がシリアル化されたモデルに表示されません。Document
Citizen
教義の実体
書類:
市民:
私が得るもの
必要なもの
特定のシリアル化グループを削除するとtype
、シリアル化された出力にフィールドが存在します。
前もって感謝します
php - JMS シリアライザーで再帰オブジェクトを処理する方法
Doctrine オブジェクト グラフをシリアライズおよびデシリアライズしようとしています。
構造はかなり複雑ですが、この例は私の問題を要約しています:
Company
に OneToMany 関係を持つエンティティがありますEmployee
。エンティティには、 との多対一の関係があり
ます。Employee
Company
これは、次のようにシリアル化されます。
つまり、の親null
への参照です。シリアル化については、これで問題ありません。しかし、この json を逆シリアル化すると、オブジェクトに a が入ります。私が望む (そして期待する) ことは、parent への正しい参照を取得することです。Employee
Company
null
Company
Employee
Company
これは JMS シリアライザーを使用して可能ですか?
それが不可能な場合、どのような回避策がありますか? これは大きなグラフであることを覚えておいてください。手動で行いたくありません。
php - 抽象クラスを持つ JMSSerializerBundle - Symfony2
依存関係を持つエンティティをシリアライズおよびデシリアライズしたいのですが、抽象クラスに関係する要素をシリアライズできません。
階層 :
テスト --> クラスが抽象クラスであり、によって拡張されている複数のテストCalls
(Call
とTestCallExecuteQuery
同じ問題$conditions
)
Test.php :
TestCall.php :
TestCallExecuteQuery.php :
だから私はインターネット上で見つけた指示に従いました:
@JMSSer\Expose
@JMSSer\ExclusionPolicy("all")
すべてのクラスでの注釈@JMSSer\Discriminator
TestCall
拡張クラスにマップするための抽象クラスの上の注釈(TestcallExecuteQuery
)
しかし..シリアル化すると、TestCallの型プロパティのみを取得しますが、で定義されたプロパティは取得しquery
ません:return
TestCallExecuteQuery
一回手に入れたので可能性はあると思いますが、時計を戻しても再現できませんでした..
編集 :
わかりました私はおそらく得query
てreturn
、変更することでTest.php
:
に :
私は何を間違っていますか?
symfony - JMS シリアライザーのネストされたオブジェクト ポリシー
JMS Serializer serialize object in object with diffrent view と同様の質問がありますが、受け入れられた回答のように機能させることはできません。
多くのレビューを持つユーザー モデルがありますが、レビューの所有者は別のユーザーです。次を出力するシリアル化ポリシーがあります。
関連付けられた (レビュー) 所有者モデルは親モデルと同じであり、同じシリアル化ポリシーを使用しているため、動作は理にかなっています。しかし、ネストされたモデルのカスタムシリアル化ポリシーを定義するにはどうすればよいので、次のように出力されます: