如何格式化要在JavaScriptSerializer中输入的数据
本文关键字:输入 数据 JavaScriptSerializer 格式化 | 更新日期: 2023-09-27 18:32:22
我正在尝试格式化活动目录中的数据,以便我可以通过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);