Как отформатировать данные для ввода в JavaScriptSerializer

0

Я пытаюсь отформатировать мои данные из активного каталога, чтобы передать его через JavaScriptSerialzer и ввести его в формате JSON. Также он должен быть в таком формате: [{"id":"1","name":"Foo"}, {"id":"2","name":"Bar"}]

foreach (SearchResult sResultSet in search.FindAll())
{
    if (sResultSet.Properties["displayName"].Count > 0)
    {
            nameList.Add(string.Format("({0}-{1})",sResultSet.Properties["displayName"][0], sResultSet.Properties["mail"][0])); 
    }
}
JavaScriptSerializer serializer = new JavaScriptSerializer();
string output = serializer.Serialize(nameList);

return nameList.ToArray();
Теги:
active-directory

1 ответ

0
Лучший ответ

Ваш код выглядит отлично, но некоторые настройки необходимы.

Во-первых, создайте класс типа DTO для его сериализации, как вы хотите, и для переноса для образца:

public class NameDTO
{
   public string Id { get; set; }
   public string Name { get; set; }
}

После этого создайте список этого объекта и выполните сериализацию

// create a list of DTO
var nameList = new List<NameDTO>();

// loop your data
foreach (SearchResult sResultSet in search.FindAll())
{
    // some custom condition
    if (sResultSet.Properties["displayName"].Count > 0)
    {
        // create a DTO object and fill it (i'm not sure about your code)
        var dto = new NameDTO() {
           Id = sResultSet.Properties["mail"][0],
           Name = sResultSet.Properties["displayName"][0]
        }

        // add on the list
        nameList.Add(dto); 
    }
}

// create the serializer object
JavaScriptSerializer serializer = new JavaScriptSerializer();

// serialize the list of DTO and get the result json
string output = serializer.Serialize(nameList);
  • 0
    Кажется, это работает, но в этом методе я пытаюсь вернуть массив, и кажется, что я не могу преобразовать сериализованный nameList ToArray из-за DTO.
  • 0
    Извините, у меня не было возврата на выход. Это сработало и большое спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню