Конвертировать Umbraco IContent в JSON - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть дескриптор объекта IContent из Umbraco через слушателя даже при публикации

public static IContent[] FaqEntities(this PublishEventArgs<IContent> publishEventArgs)
        {
            return publishEventArgs.PublishedEntities.Where(x => x.ContentType.Name == "FAQ").ToArray();
        }

В C # я хочу создать файл JSON, содержащий выбранные свойства (псевдоним и значение) из опубликованных документов в массиве, который я возвращаю - есть простой способ сериализации объекта Umbraco IContent для получения JSON вывод мне нужен?

var json = JsonConvert.SerializeObject(faqEntities) и var json = Json.Encode(faqEntities) просто дают мне весь объект, но я хочу создать файл JSON, подобный

{
    "faqs": [{
            "nodeId": 1,
            "question": "My Password is incorrect?",
            "answer": "If you have forgotten or lost your password, please click on the Forgotten Password link on the Login page and follow the instructions shown."
        },
        {
            "nodeId": 2,
            "question": "How can I edit my personal details?",
            "answer": "You can blah blah blah....."
        },
        {
            "nodeId": 3,
            "question": "What is an ABC?",
            "answer": "An ABC is where you can....."
        }
    ]
}

Есть ли простой способ получить IContent для преобразования в JSON?

1 Ответ

0 голосов
/ 27 апреля 2018

Я думаю, что вы должны создать классы, чтобы определить JSON, который вы хотите, а затем вы можете выбрать в новом формате. Что-то вроде:

public class Faq
{
     public int nodeId { get; set; }
     public string question { get; set; }
     public string answer { get; set; }
}

public class FaqCollection
{
     public IList<Faq> faqs { get; set; }
}

Затем заполните объект:

var faqsCollection = new FaqCollection();
faqsCollection.faqs = faqEntities.Select(y => new Faq { nodeId = y.nodeId, question = y.question, answer = y.answer }).ToList();

В зависимости от ваших потребностей, вам может даже не потребоваться преобразовать в json, прежде чем это сделать.

...