json.netの自己参照サイクルのjsonシリアル化物理データモデル(EDM)からシリアル化によって生成されたモデルを使用すると、エラーが発生する可能性があります。このエラーは、自己参照属性を含むシリアル化プロセスによるトラバースおよびシリアル化オブジェクトの属性全体によるものです。
この問題を解決する方法は、json.netによって提供されるクラスを使用することです。これにより、シリアル化をカスタマイズできます。
JsonConvert.SerializeObject
jsonserializersettings.referenceloophandling
JsonSerializerSettings
構成する必要があるキー設定は
です。これは、シリアル化中に環状参照を処理する方法を制御します。デフォルトでは、サイクル参照が検出されたときに異常を引き起こす
に設定されます。
参照ロファンドリングオプション:
ReferenceLoopHandling
ReferenceLoopHandling.Error
参照loophandling.error:
(デフォルト)サイクル参照に遭遇したときのデジタル異常。
参照loophandling.serialize:オブジェクトのプレースホルダーを作成し、以前のシリアル化配置であるシリアル化サイクルリファレンスに置き換えることにより。明確な構造を持つネストされたオブジェクトに適しています。
参照loophandling.ignore:- オブジェクトが独自のサブオブジェクトである場合、シリアル化をスキップします。
例:-
サイクル参照に対処するために、を
:- に設定できます。
preserveObjectReferences 無制限のネストされたオブジェクトのためにシリアル化中にスタックオーバーフローが発生した場合、
属性を使用してこの問題を回避できます。
例:
オブジェクトの構造に従って適切なReferenceLoopHandling
およびReferenceLoopHandling.Serialize
設定を選択すると、jsonシリアル化期間のjson.netを使用して自己参照ループを正常に処理できます。
以上がjson.netを使用したJSONシリアル化で自己参照ループを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。