deserialise json服务器端

如何将从javascript(使用jquery.ajax)发送的json对象反序列化为.aspx页面(不是Web服务)?

例如,如果我有以下json对象;

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

我用

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

如何在process.aspx代码中反序列化json?

另外,我如何在我的情况下使用$ .postJSON()?

您可以使用.Net 3.5中内置的DataContractJsonSerializer ,或者我们使用的是一个很棒的开源Json库: http : //jayrock.berlios.de/

要使用DataContractJsonSerializer,您的代码可能如下所示:

 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); } } 

NewtonSoft库是一个不错的选择。

您可以使用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); } } }