JSON 在 ASP.NET 中的应用
JSON 的常规用途是从 web 服务器读取数据,然后在网页中显示这些数据。
本章向您讲解如何在客户端与 ASP.net 服务器之间交换 JSON 数据。
JavaScriptSerializer 方法
使用JavaScriptSerializer,位于命名空间System.Web.Script.Serialization,使用如下:
序列化为JSON字符串:
C#代码
User user = new User {Name = "jquery", Age = 20};JavaScriptSerializer serializer = new JavaScriptSerializer();string result = serializer.Serialize(user);
DataContractJsonSerializer类
推荐使用这个,这是最新的,位于命名空间System.Runtime.Serialization.Json下,序列化和反序列化分别调用它的WriteObject()和ReadObject()方法就可以了。
第三方JSON.NET
在项目中添加Newtonsoft.Json.dll引用..
using Newtonsoft.Json;using Newtonsoft.Json.Converters;//把Json字符串反序列化为对象目标对象 = JsonConvert.DeserializeObject(JSON字符串, typeof(目标对象));//把目标对象序列化为Json字符串string Json字符串 = JsonConvert.SerializeObject(目标对象);string jsonText = "";
//json 读取jsonText = "['JSON!',1,true,{property:'value'}]";JsonReader reader = new JsonTextReader(new StringReader(jsonText));Console.WriteLine("TokenType\t\tValueType\t\tValue");while (reader.Read()){Console.WriteLine(reader.TokenType + "\t\t" + reader.ValueType + "\t\t" + reader.Value);Console.WriteLine("\n\r");}
//JSON写入StringWriter sw = new StringWriter();JsonWriter writer = new JsonTextWriter(sw);writer.WriteStartArray();writer.WriteValue("JSON!");writer.WriteValue(1);writer.WriteValue(true);writer.WriteStartObject();writer.WritePropertyName("property");writer.WriteValue("value");writer.WriteEndObject();writer.WriteEndArray();writer.Flush();jsonText = sw.GetStringBuilder().ToString();Console.WriteLine(jsonText);