1. xConnectモデル

JSON.NETを使用したxConnectエンティティのシリアル化

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、JSON.NETを使用してxConnectエンティティをシリアル化する方法を示します。次の場合は、xConnectオブジェクトをシリアル化できます。

  • ファセットを外部データベースにキャッシュしたい。

  • xConnectクライアントを使用してデータを読み取り、返されたデータに基づいて動作し、変更されたデータを別のサービスに渡すカスタムWeb APIエンドポイントがあります。

警告

連絡先やインタラクションのデータをキャッシュやデータベースに書き込む際には、国際的なデータプライバシー規制を念頭に置いてください - 例えば、PIISensitiveとマークされた連絡先ファセットのシリアル化は避けたいかもしれません。

JSON.NETを使用してxConnectエンティティをシリアル化するには、図のようにs JsonSerializerSettingsオブジェクトを定義し、このオブジェクトをSerializeObjectメソッドに渡します。

using Newtonsoft.Json;
using Sitecore.XConnect;
using Sitecore.XConnect.Client.Serialization;

namespace Documentation
{
    public class Serialize
    {
        // Async example
        public async void SerializeEntities()
        {
            using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
            {
                var serializerSettings = new JsonSerializerSettings
                {
                    ContractResolver = new XdbJsonContractResolver(client.Model,
                serializeFacets: true,
                serializeContactInteractions: true),
                    DateTimeZoneHandling = DateTimeZoneHandling.Utc,
                    DefaultValueHandling = DefaultValueHandling.Ignore
                };

                var contact = await client.GetAsync<Contact>(new IdentifiedContactReference("twitter", "myrtlesitecore"), new ContactExpandOptions() { });

                JsonConvert.SerializeObject(contact, serializerSettings);
            }
        }
    }
}

非同期および同期拡張メソッド

単体テストのコンテキストでは、Sitecore.XConnect.Serialization.DeserializationHelpersクラスを使用して、ContactクラスとInteractionクラスに読み取り専用プロパティを設定できます。次の例は、SetFacet() メソッドの使用方法を示しています。

// New test contact
var contact = new Contact();

// New test contact facet
Sitecore.XConnect.Serialization.DeserializationHelpers.SetFacet(contact, PersonalInformation.DefaultFacetKey, new PersonalInformation() { FirstName = "Myrtle" } );
この記事を改善するための提案がある場合は、 お知らせください!