如何将非常长的字符串数组从 C# 传输到 Javascript/JQuery?
How to transfer very long string array from C# to Javascript/JQuery?
我目前正在开发一个新的 "dashboard like" 网站,我需要在该网站上显示来自 exchange 2016 邮箱(例如 gmail 或任何 bootstrap 电子邮件客户端模板)的所有邮件。
目前,我可以通过使用 EWS API.
毫无问题地从邮箱中检索邮件
我的问题是我真的不知道哪种格式(XML 或 JSON)比 return 消息内容(ID、正文、主题和 DateTimeReceived)更好。我尝试将所有消息存储在多维数组和锯齿状数组中,但是当我尝试将它们序列化为 JSON 字符串时,我总是会收到 "Unexpected token" 错误。
所以我的两个问题是:
1) 考虑到邮件正文可以是很长的字符串,使用 XML 格式是否比 JSON 更好?
2) 除了通过 JQuery 脚本转换数组之外,有没有更好的方法来实现我要做的事情?
PS:我正在研究 Visual Studio 2017,使用的语言是 C# 和 bootstrap 仪表板模板。另外,我对网络开发(语言、良好的编码习惯等)完全陌生,但对 C# 编程不是。
这是我从邮箱和 return 多维数组中提取所有消息的函数:
public string[,] getEmail() {
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
service.AutodiscoverUrl("testUser@myworkplace.com");
service.TraceEnabled = true;
service.TraceFlags = TraceFlags.All;
service.UseDefaultCredentials = true;
PropertySet itempropertyset = new PropertySet(BasePropertySet.FirstClassProperties);
itempropertyset.RequestedBodyType = BodyType.Text;
ItemView itemview = new ItemView(1000);
itemview.PropertySet = itempropertyset;
FindItemsResults < Item > findResults = service.FindItems(WellKnownFolderName.Inbox, itemview);
string[, ] emailArray = new string[findResults.TotalCount, 4];
int i = 0;
foreach(Item item in findResults.Items) {
message.Load(itempropertyset);
emailArray[i, 0] = message.Id.ToString();
emailArray[i, 1] = message.Subject;
emailArray[i, 2] = message.Body;
emailArray[i, 3] = message.DateTimeReceived.ToString();
i++;
}
return emailArray;
}
如有任何帮助,我们将不胜感激。
如果您尝试将数据传输到网络浏览器,您最好使用 JSON。浏览器具有解析 JSON 字符串的本机代码,这是一种非常容易创建和解析的格式。
话虽如此,您还是应该找一个库来为您进行编码。几乎所有平台都会有一些代码将一组嵌套的映射和数组转换为 JSON 字符串,这将帮助您避免在实际格式化和解析文档时出现小(但致命)错误。
另请参阅:JSON.stringify and JSON.parse
我目前正在开发一个新的 "dashboard like" 网站,我需要在该网站上显示来自 exchange 2016 邮箱(例如 gmail 或任何 bootstrap 电子邮件客户端模板)的所有邮件。
目前,我可以通过使用 EWS API.
毫无问题地从邮箱中检索邮件我的问题是我真的不知道哪种格式(XML 或 JSON)比 return 消息内容(ID、正文、主题和 DateTimeReceived)更好。我尝试将所有消息存储在多维数组和锯齿状数组中,但是当我尝试将它们序列化为 JSON 字符串时,我总是会收到 "Unexpected token" 错误。
所以我的两个问题是:
1) 考虑到邮件正文可以是很长的字符串,使用 XML 格式是否比 JSON 更好?
2) 除了通过 JQuery 脚本转换数组之外,有没有更好的方法来实现我要做的事情?
PS:我正在研究 Visual Studio 2017,使用的语言是 C# 和 bootstrap 仪表板模板。另外,我对网络开发(语言、良好的编码习惯等)完全陌生,但对 C# 编程不是。
这是我从邮箱和 return 多维数组中提取所有消息的函数:
public string[,] getEmail() {
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
service.AutodiscoverUrl("testUser@myworkplace.com");
service.TraceEnabled = true;
service.TraceFlags = TraceFlags.All;
service.UseDefaultCredentials = true;
PropertySet itempropertyset = new PropertySet(BasePropertySet.FirstClassProperties);
itempropertyset.RequestedBodyType = BodyType.Text;
ItemView itemview = new ItemView(1000);
itemview.PropertySet = itempropertyset;
FindItemsResults < Item > findResults = service.FindItems(WellKnownFolderName.Inbox, itemview);
string[, ] emailArray = new string[findResults.TotalCount, 4];
int i = 0;
foreach(Item item in findResults.Items) {
message.Load(itempropertyset);
emailArray[i, 0] = message.Id.ToString();
emailArray[i, 1] = message.Subject;
emailArray[i, 2] = message.Body;
emailArray[i, 3] = message.DateTimeReceived.ToString();
i++;
}
return emailArray;
}
如有任何帮助,我们将不胜感激。
如果您尝试将数据传输到网络浏览器,您最好使用 JSON。浏览器具有解析 JSON 字符串的本机代码,这是一种非常容易创建和解析的格式。
话虽如此,您还是应该找一个库来为您进行编码。几乎所有平台都会有一些代码将一组嵌套的映射和数组转换为 JSON 字符串,这将帮助您避免在实际格式化和解析文档时出现小(但致命)错误。
另请参阅:JSON.stringify and JSON.parse