deserialise lado del servidor json

¿Cómo puedo des-serializar un objeto json enviado desde javascript (usando jquery.ajax) a una página .aspx (no es un servicio web)?

por ejemplo, si tengo el siguiente objeto json;

var json = {"name" : "michael", "surname" : "brown", "age" : "35"} 

y yo uso

 $.post('process.aspx', json) 

¿Cómo puedo deserializar el json en el código process.aspx detrás?

también, ¿cómo uso el $ .postJSON () en mi caso?

Puede usar el DataContractJsonSerializer integrado en .Net 3.5, o hay una gran biblioteca Json de código abierto que usamos: http://jayrock.berlios.de/

Para usar el DataContractJsonSerializer, su código podría verse así:

 var serializer = new DataContractJsonSerializer(typeof(Person)); using (MemoryStream ms = new MemoryStream(new ASCIIEncoding().GetBytes(myString))) { try { Person obj = serializer.ReadObject(ms) as Person; } catch (Exception e) { throw new InvalidOperationException("Could not deserialize Person.", e); } } 

La biblioteca NewtonSoft es una buena opción.

Podría usar DataContractJsonSerializer :

 class Program { [DataContract] class Person { [DataMember(Name = "name")] public string Name { get; set; } [DataMember(Name = "surname")] public string Surname { get; set; } [DataMember(Name="age")] public int Age { get; set; } } static void Main(string[] args) { var json = @"{""name"" : ""michael"", ""surname"" : ""brown"", ""age"" : ""35""}"; var serializer = new DataContractJsonSerializer(typeof(Person)); using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(json))) { var person = (Person)serializer.ReadObject(stream); Console.WriteLine("Name : {0}, Surname : {1}, Age : {2}", person.Name, person.Surname, person.Age); } } }