ASP.NET编程中的JSON操作

时间:2021-04-16

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

  序列化为JSON字符串:

  C#代码

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

  反序列化JSON

  C#代码

String input = "";
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.Deserialize(input);

  2. 使用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);

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章