Tengo una variable de diccionario en C# (ASP.NET). Quiero enviar estos datos a Javascript. Estoy usando este código para serializarlo y enviarlo a javascript.Lectura del diccionario C# en 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));
En la página de Javascript, llamo a esta página usando esto;
$.ajax({
url: "TextChatCalls/getChat.aspx",
type: "POST",
context: document.body,
success: function (response) {
var Chats = response.split('\n')[0];
alert(Chats);
}
});
El valor en los chats var es {"Sam":"How are you?","Rita":"I am good"}
No sé ¿cómo puedo leer este valor en los chats. ¿Puedo de alguna manera convertir esto en una matriz 2D y leerlo como una matriz [0] [0], una matriz [1] [0], etc.?
Gracias.
EDIT: Una confusión más es que, al objeto respuesta, volvió de ASP.NET, contiene
{"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>
Y no sólo {"Sam":"How are you?","Rita":"I am good"}
como se esperaba. Y, por lo tanto, tengo que dividir el objeto de respuesta por var Chats = response.split('\n')[0];
, lo que lo convierte en una cadena.
No puedo entender por qué, pero mi objeto de respuesta contiene este valor "{" Sam ":" ¿Cómo estás? " 'Rita?':" Soy bueno "}
@Joy Tienes que hacer un 'Response.End()' 'después de la Response.Write() ', de otra manera enviarás toda la página aspx después del JSON :-) – xanatos
Gracias. Funcionó. – Jayesh