一个简单示例:
//*** 将JsonData转换为JSON字符串 ***************************
String str2 = jd.ToJson();
下载地址
:下载
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 类实现数据的转换
ublic
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 (英文)