JSON 在 ASP.NET 中的应用

JSON 的常规用途是从 web 服务器读取数据,然后在网页中显示这些数据。

本章向您讲解如何在客户端与 ASP.net 服务器之间交换 JSON 数据。


JavaScriptSerializer 方法

使用JavaScriptSerializer,位于命名空间System.Web.Script.Serialization,使用如下:

序列化为JSON字符串:

C#代码

  1. User user = new User {Name = "jquery", Age = 20};
  2. JavaScriptSerializer serializer = new JavaScriptSerializer();
  3. string result = serializer.Serialize(user);

DataContractJsonSerializer类

推荐使用这个,这是最新的,位于命名空间System.Runtime.Serialization.Json下,序列化和反序列化分别调用它的WriteObject()和ReadObject()方法就可以了。


第三方JSON.NET

在项目中添加Newtonsoft.Json.dll引用..

  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Converters;
  3. //把Json字符串反序列化为对象
  4. 目标对象 = JsonConvert.DeserializeObject(JSON字符串, typeof(目标对象));
  5. //把目标对象序列化为Json字符串
  6. string Json字符串 = JsonConvert.SerializeObject(目标对象);
  7. string jsonText = "";
  1. //json 读取
  2. jsonText = "['JSON!',1,true,{property:'value'}]";
  3. JsonReader reader = new JsonTextReader(new StringReader(jsonText));
  4. Console.WriteLine("TokenType\t\tValueType\t\tValue");
  5. while (reader.Read())
  6. {
  7. Console.WriteLine(reader.TokenType + "\t\t" + reader.ValueType + "\t\t" + reader.Value);
  8. Console.WriteLine("\n\r");
  9. }
  1. //JSON写入
  2. StringWriter sw = new StringWriter();
  3. JsonWriter writer = new JsonTextWriter(sw);
  4. writer.WriteStartArray();
  5. writer.WriteValue("JSON!");
  6. writer.WriteValue(1);
  7. writer.WriteValue(true);
  8. writer.WriteStartObject();
  9. writer.WritePropertyName("property");
  10. writer.WriteValue("value");
  11. writer.WriteEndObject();
  12. writer.WriteEndArray();
  13. writer.Flush();
  14. jsonText = sw.GetStringBuilder().ToString();
  15. Console.WriteLine(jsonText);