Я пытаюсь отформатировать мои данные из активного каталога, чтобы передать его через 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();
Ваш код выглядит отлично, но некоторые настройки необходимы.
Во-первых, создайте класс типа 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);