Mam zmienną słownikową w języku C# (ASP.NET). Chcę wysłać te dane do JavaScript. Używam tego kodu do serializowania go i wysyłania do javascript.Czytanie słownika C# w JavaScript
Dictionary<string, string> chat;
chat = new Dictionary<string, string>();
chat.Add("Sam", "How are you?");
chat.Add("Rita", "I am good");
var serialize = new System.Web.Script.Serialization.JavaScriptSerializer();
Response.Write(serialize.Serialize(chat));
Na stronie Javascript, wywołuję tę stronę za pomocą tego;
$.ajax({
url: "TextChatCalls/getChat.aspx",
type: "POST",
context: document.body,
success: function (response) {
var Chats = response.split('\n')[0];
alert(Chats);
}
});
Wartość w Chats var jest {"Sam":"How are you?","Rita":"I am good"}
nie wiem jak mogę odczytać tę wartość w czatach. Czy mogę w jakiś sposób przekonwertować to na tablicę 2D i odczytać ją jako tablicę [0] [0], tablicę [1] [0] itd.?
Dzięki.
EDIT: Jeden więcej zamieszania jest to, że obiekt odpowiedzi, wrócił z ASP.NET, zawiera
{"Sam":"How are you?","Rita":"I am good"}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title></head>
<body>
<form name="form1" method="post" action="getChat.aspx?Id=141755" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjlkZJctiKZK4rXVndR3mbGssIarCrOF" />
</div>
<div>
</div>
</form>
</body>
</html>
a nie tylko {"Sam":"How are you?","Rita":"I am good"}
jak oczekiwano. I dlatego muszę podzielić obiekt odpowiedzi przez var Chats = response.split('\n')[0];
co czyni go ciągiem!
Nie mogę zrozumieć dlaczego, ale mój obiekt odpowiedź zawierającą tę wartość „{” SAM „:” Jak się masz „«Rita?»:” Jestem dobry "}
@Joy Trzeba zrobić 'Response.End()' po ' Response.Write() ', poza tym wyślesz całą stronę aspx po JSON :-) – xanatos
Dzięki. Zadziałało. – Jayesh