最近项目中需要用到 JSON操作,google了一下 找到了几个比较好的操作方法....
一 .使用 mircosoft 提供的 .NET Framework 自带的 json操作方法
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 (http://json.codeplex.com/)
Version: Json.NET 3.5 Release 7 Date: Fri Apr 16 2010 at 3:00 PM
在项目中添加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);
一些相关的json操作的链接和资料
json官方: http://www.json.org/json-zh.html
另外一种开源的json类库 : Jayrock.Json (http://www.cnblogs.com/chjw8016/archive/2010/04/20/1716198.html?login=1#commentform)
|
请发表评论