Hay una construida en la forma en .Net AJAX manualmente serializar un objeto a una cadena JSON?
-
09-06-2019 - |
Pregunta
He encontrado ScriptingJsonSerializationSection
pero no estoy seguro de cómo usarlo.Yo podría escribir una función para convertir el objeto a una cadena JSON de forma manual, pero ya .Net puede hacer sobre la marcha con el <System.Web.Services.WebMethod()>
y <System.Web.Script.Services.ScriptMethod()>
atributos por lo que debe ser incorporado en forma de que me estoy perdiendo.
PS:el uso de Asp.Net 2.0 y VB.Net - yo se lo pone en las etiquetas, pero creo que a la gente se la perdieron.
Solución
Esto debe hacer el truco
Dim jsonSerialiser As New System.Web.Script.Serialization.JavaScriptSerializer
Dim jsonString as String = jsonSerialiser.Serialize(yourObject)
Otros consejos
Creo que lo que estás buscando es esta clase:
System.ServiceModel.Web.DataContractJsonSerializer
He aquí un ejemplo de Rick Strahl: DataContractJsonSerializer en .NET 3.5
Desde el JavaScriptSerializer clase es técnicamente va a quedar en desuso, creo DataContractJsonSerializer es la mejor manera de ir si usted está usando 3.0+.
Bueno, yo actualmente estoy usando los siguientes métodos de extensión para serializar y deserializar objetos:
using System.Web.Script.Serialization;
public static string ToJSON(this object objectToSerialize)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Serialize(objectToSerialize);
}
/// <typeparam name="T">The type we are deserializing the JSON to.</typeparam>
public static T FromJSON<T>(this string json)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Deserialize<T>(json);
}
Yo uso esta un poco - le advierto, esta aplicación es un poco ingenuo (es decir,hay algunos problemas potenciales con los que, dependiendo de lo que usted está serializando y cómo utilizarlo en el cliente, en particular con DateTimes).
En el Sistema.Web.Extensiones de la asamblea, la versión 3.5.0.0, hay un JavaScriptSerializer de la clase que debe manejar lo que usted desea.
Trate de
System.Web.Script.Serialization.JavaScriptSerializer
o Echa un vistazo a JSON.org hay toda una lista de bibliotecas escritas a hacer exactamente lo que quieres.