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

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

php - JMSシリアライザーを使用してArrayCollectionのスライスをシリアライズするには?

CategoryREST API に使用するエンティティのコレクションPresentation(以下を参照) を使用して、 JSON エンティティにシリアル化したいと考えています。

エンドポイントは次のようになります/api/v1/categories/1

データセットが小さく、Category関連するものが 5 ~ 10 個しかないPresentations場合、結果の応答はそれほど大きくありません。ただし、Category100 または 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 によって内部的に呼び出されるため...

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

php - JMS シリアライザー エラー: オブジェクトにないときに $this を使用する

私は支払い処理ページに取り組んでいます。Authorize.net を使用してトランザクションを処理しています。Authorize の php ライブラリとそのすべての依存関係をインポートしました。

テスト トランザクションを処理しようとすると、次のエラーが発生します。

最初は自分のコードに何かあると思ったので、Authorize の php サンプル トランザクションを実行してみましたが、同じエラーが発生しました。

シリアライザーは、昨日 GitHub からダウンロードされたばかりです。https://github.com/schmittjoh/serializer

Authorize のサンプル コードは次のとおりです。

エラーの原因についてのアイデアはありますか?

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

symfony - 型を強制するのではなく、JSON のデシリアライズ時に JMS シリアライザーに例外をスローさせるにはどうすればよいですか?

Symfony2 の PUT リクエストから JSON を使用する REST API を作成しようとしています。JSON をエンティティに逆シリアル化することはある程度機能しますが、JSON 内のプロパティの型がエンティティの対応するプロパティと一致しない場合、JMS シリアライザーは例外をスローするのではなく、JSON から型を強制するようです。

たとえば…</p>

…結果は…</p>

…プロパティidがエンティティで整数として定義されている場合。

しかし、代わりに JMS シリアライザーが例外をスローするようにしたいと考えています。これを達成する方法を知っている人はいますか?

2016-02-27 更新

私が見つけた JMS シリアライザーの型処理に関する 1 つの問題は次のとおりです。

結果は…</p>

これはまったく望ましくありません。

誰かが私を正しい方向に向けることができますか?

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

php - JSON を php オブジェクトにマップする

次の構造を持つ JSON がありますが、entriesノード内のデータにのみ関心があるため、DTO クラスのフィールドはノード内のタグをミラーリングします。しかし、JMSserializer は JSON 内のすべてのタグのフィールドを含むオブジェクトを想定しているため、JSON をデシリアライズすると、予想どおりエラーが発生します。他のタグを無視する方法はありますか? これを達成する適切な方法は何ですか?

0 投票する
0 に答える
317 参照

symfony - JMS のデシリアライズ後に Doctrine が関連するエンティティを更新するのはなぜですか?

私は Symfony2 プロジェクトで Doctrine+JMSserializer を使用していますが、典型的な JMS の「デシリアライズ」および Doctrine の「永続化」操作中に、関連するエンティティとそのデータが侵害される可能性があるという問題を発見しました。

そして、新しい $entity 関連の Page エンティティ名の通常の永続化操作の後、変更されるため、問題になります。

目標は、レビューのページ ID を設定することですが、他のプロパティの変更を防止します。そうしないと、ページ エンティティが危険にさらされる可能性があります。注釈、教義設定などを変更してこの問題を解決しようとしました。この問題を自然な方法で解決する方法はありますか?

レビューとページのエンティティ:

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

symfony - 特定のグループがシリアル化されている場合、JMS @Discriminator フィールドが表示されない

Symfony 2.8、FOSRestBundle、および JMSSerializerBundle を使用しています。

問題

entity の特定のグループ (次の例では「api」グループ) をシリアル化すると、エンティティのDiscriminator フィールドtypeがシリアル化されたモデルに表示されません。DocumentCitizen

教義の実体

書類:

市民:

私が得るもの

必要なもの

特定のシリアル化グループを削除するとtype、シリアル化された出力にフィールドが存在します。

前もって感謝します

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

php - JMS シリアライザーで再帰オブジェクトを処理する方法

Doctrine オブジェクト グラフをシリアライズおよびデシリアライズしようとしています。

構造はかなり複雑ですが、この例は私の問題を要約しています:

Companyに OneToMany 関係を持つエンティティがありますEmployee。エンティティには、 との多対一の関係があり
ます。EmployeeCompany

これは、次のようにシリアル化されます。

つまり、の親nullへの参照です。シリアル化については、これで問題ありません。しかし、この json を逆シリアル化すると、オブジェクトに a が入ります。私が望む (そして期待する) ことは、parent への正しい参照を取得することです。EmployeeCompanynull CompanyEmployeeCompany

これは JMS シリアライザーを使用して可能ですか?
それが不可能な場合、どのような回避策がありますか? これは大きなグラフであることを覚えておいてください。手動で行いたくありません。

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

php - 抽象クラスを持つ JMSSerializerBundle - Symfony2

依存関係を持つエンティティをシリアライズおよびデシリアライズしたいのですが、抽象クラスに関係する要素をシリアライズできません。

階層 :

テスト --> クラスが抽象クラスであり、によって拡張されている複数のテストCalls(CallTestCallExecuteQuery同じ問題$conditions)

Test.php :

TestCall.php :

TestCallExecuteQuery.php :

だから私はインターネット上で見つけた指示に従いました:

  • @JMSSer\Expose@JMSSer\ExclusionPolicy("all")すべてのクラスでの注釈
  • @JMSSer\DiscriminatorTestCall拡張クラスにマップするための抽象クラスの上の注釈( TestcallExecuteQuery)

しかし..シリアル化すると、TestCallの型プロパティのみを取得しますが、で定義されたプロパティは取得しqueryません:returnTestCallExecuteQuery

一回手に入れたので可能性はあると思いますが、時計を戻しても再現できませんでした..

編集 :

わかりました私はおそらく得queryreturn、変更することでTest.php:

に :

私は何を間違っていますか?

0 投票する
0 に答える
2090 参照

symfony - JMS シリアライザーのネストされたオブジェクト ポリシー

JMS Serializer serialize object in object with diffrent view と同様の質問がありますが、受け入れられた回答のように機能させることはできません。

多くのレビューを持つユーザー モデルがありますが、レビューの所有者は別のユーザーです。次を出力するシリアル化ポリシーがあります。

関連付けられた (レビュー) 所有者モデルは親モデルと同じであり、同じシリアル化ポリシーを使用しているため、動作は理にかなっています。しかし、ネストされたモデルのカスタムシリアル化ポリシーを定義するにはどうすればよいので、次のように出力されます: