В настоящее время я пытаюсь создать службу для извлечения и сериализации элемента данных Sitecore в JSON, чтобы наш код Javascript мог получить доступ к данным содержимого Sitecore.
Я попытался сериализовать объект напрямую с помощью JavascriptSerializer иJSON.Net;оба прервались из-за рекурсии, вероятно, из-за различных циклических ссылок на дочерние свойства.
Я также пытался сериализовать элемент в XML (через item.GetOuterXml ()), а затем преобразовал Xml в JSON.Преобразование работало нормально;но он извлекает только те поля, которые были установлены для самого элемента, а не поля, которые были установлены в _standardvalues.Я попытался вызвать item.Fields.ReadAll () перед сериализацией, а также цикл foreach с вызовами item.Fields.EnsureField (Field.id);однако ни один из них не привел к поиску пропущенных полей.Тем не менее, отладка кода;кажется, что массив Fields содержит все унаследованные поля из своего базового шаблона, а также поля, установленные для элемента;поэтому я предполагаю, что GetOuterXml просто игнорирует все поля, которые не были заданы специально для элемента.
Чем больше я смотрю на это, тем больше похоже, что мне понадобится собственный класс модели дляинкапсулируйте элемент данных и необходимые поля, украсьте его соответствующими атрибутами сериализации JSON.Net и сериализуйте оттуда.Это похоже на грязный хак.
Итак, прежде чем я пойду по этой дороге;Я хотел бы знать, имел ли кто-нибудь здесь опыт сериализации элементов контента Sitecore в JSON для использования на стороне клиента, и есть ли более простой способ, который я пропускаю.Любой конструктивный вклад приветствуется.
Ура, Фрэнк