newtonsoft - ¿.NET 4 tiene un serializador/deserializador JSON incorporado?
newtonsoft json serialize vb net (3)
Puede utilizar la clase DataContractJsonSerializer cualquier lugar que desee, solo es una clase .net y no está limitada a WCF. Más información sobre cómo usarlo here y here .
¿.NET 4 viene con cualquier clase que serialice / deserialice datos JSON?
Sé que hay bibliotecas de terceros, como JSON.NET , pero estoy buscando algo integrado en .NET.
Encontré Data Contracts en MSDN, pero es para WCF, no para Winforms o WPF.
Utilice esta clase genérica para serializar / deserializar JSON. Puede serializar fácilmente una estructura de datos compleja como esta:
Dictionary<string, Tuple<int, int[], bool, string>>
a cadena JSON y luego guardarlo en la configuración de la aplicación o bien
public class JsonSerializer
{
public string Serialize<T>(T aObject) where T : new()
{
T serializedObj = new T();
MemoryStream ms = new MemoryStream();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
ser.WriteObject(ms, serializedObj);
byte[] json = ms.ToArray();
ms.Close();
return Encoding.UTF8.GetString(json, 0, json.Length);
}
public T Deserialize<T>(string aJSON) where T : new()
{
T deserializedObj = new T();
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(aJSON));
DataContractJsonSerializer ser = new DataContractJsonSerializer(aJSON.GetType());
deserializedObj = (T)ser.ReadObject(ms);
ms.Close();
return deserializedObj;
}
}
Está la clase JavaScriptSerializer (aunque deberá hacer referencia al ensamblado System.Web.Extensions
, la clase funciona perfectamente bien en aplicaciones WinForms / WPF). Además, incluso si la clase DataContractJsonSerializer se diseñó para WCF, funciona bien en aplicaciones cliente.