.NET平台开源JSON库LitJSON的使用方法
来源:互联网 发布:网络大电影市场 编辑:程序博客网 时间:2024/04/27 14:54
LitJSON是一个.NET平台下处理JSON格式数据的类库,小巧、快速。它的源代码使用C#编写,可以通过任何.Net平台上的语言进行调用,目前最新版本为LitJSON 0.5.0。
与以下这几个.Net平台上的开源JSON库相比,LitJSON的性能遥遥领先:
Jayrock version 0.9.8316
LitJSON version 0.3.0
Newtonsoft Json.NET version 1.1
下面介绍LitJSON中常用的方法:
以下示例需要先添加引用LitJson.dll,再导入命名空间 using LitJson;
点击直接下载LitJSON.dll,也可以到http://litjson.sourceforge.net去下载。
1、Json 与 C#中 实体对象 的相互转换
例 1.1:使用 JsonMapper 类实现数据的转换
public class Person { public string Name { get; set; } public int Age { get; set; } public DateTime Birthday { get; set; } } public class JsonSample { public static void Main() { PersonToJson(); JsonToPerson(); } /// /// 将实体类转换成Json格式 /// public static void PersonToJson() { Person bill = new Person(); bill.Name = "www.87cool.com"; bill.Age = 3; bill.Birthday = new DateTime(2007, 7, 17); string json_bill = JsonMapper.ToJson(bill); Console.WriteLine(json_bill); //输出:{"Name":"www.87cool.com","Age":3,"Birthday":"07/17/2007 00:00:00"} } /// /// 将Json数据转换成实体类 /// public static void JsonToPerson() { string json = @" { ""Name"" : ""www.87cool.com"", ""Age"" : 3, ""Birthday"" : ""07/17/2007 00:00:00"" }"; Person thomas = JsonMapper.ToObject(json); Console.WriteLine("'87cool' age: {0}", thomas.Age); //输出:'87cool' age: 3 } }
例 1.2:使用 JsonMapper 类将Json字符串转换为C#认识的JsonData,再通过Json数据的属性名或索引获取其值。
在C#中读取JsonData对象 和 在JavaScript中读取Json对像的方法完全一样;
对Json的这种读取方式在C#中用起来非常爽,同时也很实用,因为现在很多网络应用提供的API所返回的数据都是Json格式的,
如Flickr相册API返回的就是json格式的数据。
public static void LoadAlbumData(string json_text) { JsonData data = JsonMapper.ToObject(json_text); Console.WriteLine("Album's name: {0}", data["album"]["name"]); string artist = (string)data["album"]["name"]; int year = (int)data["album"]["year"]; Console.WriteLine("First track: {0}", data["album"]["tracks"][0]); }
2、C# 中对 Json 的 Readers 和 Writers
例 2.1:JsonReader类的使用方法
public class DataReader{ public static void Main () { string sample = @"{ ""name"" : ""Bill"", ""age"" : 32, ""awake"" : true, ""n"" : 1994.0226, ""note"" : [ ""life"", ""is"", ""but"", ""a"", ""dream"" ] }"; ReadJson (sample); } //输出所有Json数据的类型和值 public static void ReadJson (string json) { JsonReader reader = new JsonReader (json); Console.WriteLine ("{0,14} {1,10} {2,16}", "Token", "Value", "Type"); Console.WriteLine (new String ('-', 42)); while (reader.Read()) { string type = reader.Value != null ? reader.Value.GetType().ToString() : ""; Console.WriteLine("{0,14} {1,10} {2,16}", reader.Token, reader.Value, type); } }} //输出结果:// Json类型 值 C#类型//------------------------------------------// ObjectStart // PropertyName name System.String// String Bill System.String// PropertyName age System.String// Int 32 System.Int32// PropertyName awake System.String// Boolean True System.Boolean// PropertyName n System.String// Double 1994.0226 System.Double// PropertyName note System.String// ArrayStart // String life System.String// String is System.String// String but System.String// String a System.String// String dream System.String// ArrayEnd // ObjectEnd
例 2.2:JsonWriter类的使用方法
public class DataReader{ //通过JsonWriter类创建一个Json对象 public static void WriteJson () { System.Text.StringBuilder sb = new System.Text.StringBuilder(); JsonWriter writer = new JsonWriter (sb); writer.WriteArrayStart (); writer.Write (1); writer.Write (2); writer.Write (3); writer.WriteObjectStart (); writer.WritePropertyName ("color"); writer.Write ("blue"); writer.WriteObjectEnd (); writer.WriteArrayEnd (); Console.WriteLine (sb.ToString ()); //输出:[1,2,3,{"color":"blue"}] }}
更详细的可参考 http://litjson.sourceforge.net/doc/manual.html (英文)
- .NET平台开源JSON库LitJSON的使用方法
- .NET平台开源JSON库LitJSON的使用方法
- .NET平台开源JSON库LitJSON的使用方法
- .NET平台开源JSON库LitJSON的使用方法
- .NET平台开源JSON库LitJSON的使用方法
- .NET平台开源JSON库LitJSON的使用方法
- .NET平台开源JSON库LitJSON的使用方法
- .NET平台开源JSON库LitJSON的使用方法
- .NET平台开源JSON库LitJSON的使用方法
- NET平台开源JSON库LitJSON的使用方法
- .NET平台开源JSON库LitJSON的使用方法
- [C#技术] .NET平台开源JSON库LitJSON的使用方法
- [C#技术] .NET平台开源JSON库LitJSON的使用方法(转载)
- JSON库LitJSON的使用方法
- LitJSON .Net开源JSON库、轻量级
- LitJSON--json 和net 的完美组合用法
- LitJSON--json 和net 的完美组合用法
- C#中LitJson转Json使用方法与坑
- 字节那些事儿
- YOYOPlayer开源音乐播放器
- 世界最大的PHP站点 Facebook后台技术探秘(1)
- 【转帖】DaVinci开发原理
- 在Linux下自制虚拟光驱
- .NET平台开源JSON库LitJSON的使用方法
- TAOUP设计原则-模块性-保持清晰,保持简洁
- IPicture
- GridView动态创建templateField
- PB如何免装oracle客户端发布软件(oracle10g版本)
- ARRAYOFCONST
- 2010-9-14
- WebQQ 2.0上线引发质疑 QQ地图同时推出
- 整数划分问题