私は交換用のメールボックス(Gmailやブートストラップ電子メールクライアントテンプレートなど)からすべてのメッセージを表示する必要がある新しい「ダッシュボードのような」ウェブサイトに取り組んでいます。非常に長い文字列配列をC#からJavascript/JQueryに転送するには?
現在、EWS APIを使用することで問題なくメールボックスからメッセージを取得できます。
私の問題は、メッセージの内容(ID、本文、件名、およびDateTimeReceived)を返すために、どの形式(XMLまたはJSON)が良いかわかりません。私はマルチディメンション配列とギザギザの配列にすべてのメッセージを保存しようとしましたが、JSON文字列でそれらをシリアル化しようとすると、 "予期しないトークン"エラーが発生します。
だから私の二つの質問は以下のとおりです。
1)は、メッセージのボディは非常に長い文字列を指定できます考慮JSONよりもXMLフォーマットを使用する方が良いですか?
2)JQueryスクリプトで変換された配列ではなく、何をすべきかを達成するためのより良い方法はありますか?
PS:私はVisual Studio 2017で作業しています。使用する言語はC#で、ブートストラップダッシュボードテンプレートを使用しています。また、私はWeb開発(言語、良いコーディング習慣など)にはまったく新しいですが、C#プログラミングではありません。任意の助けをいただければ幸いです
public string[,] getEmail() {
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
service.AutodiscoverUrl("[email protected]");
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.parseは '私はJSON文字列でそれらをシリアル化しようとしたとき、私はいつも「予期しないトークン」を得るerror.'が鳴ります。 Javascriptの文字列を読み込もうとするとこのエラーが発生しますか?または、C#で文字列を文字列に変換しますか? –
私の問題は、私がserializeメソッドをどのように呼び出すかに関連していました。これで私のメソッドを呼び出すだけで、このコードで期待どおりに動作しています: 'public string getBody(){ var javaScriptSerializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 文字列jsonString = javaScriptSerializer.Serialize(emailBody); return jsonString; '} – DarKZoNe