1.使用微軟自帶的System.Web.Extensions.dll轉換,該DLL文件一般存在於如下路徑:c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Web.Extensions.dll
具體操作如下:
//將List集合轉換為Json字符串,必須應用上面的DLL文件,同時引用using System.Web.Script.Serialization;命名空間 JavaScriptSerializer serializer = new JavaScriptSerializer(); List<Person> list = new List<Person>(); for (int i = 0; i < 10; i++) { Person p = new Person("張三" + i, "重慶" + i, "10" + i); list.Add(p); } MessageBox.Show(serializer.Serialize(list)); //將Json字符串轉換為集合,Person為自己定義的實體類 string json = "[{'Address':'重慶0','Age':'100','Name':'張三0'},{'Address':'重慶1','Age':'101','Name':'張三1'}]"; JavaScriptSerializer serializer = new JavaScriptSerializer(); List<Person> list = serializer.Deserialize<List<Person>>(json);
2.可以借助開源的Newtonsoft.Json.dll進行轉換
//將List集合轉換為Json字符串 JavaScriptSerializer serializer = new JavaScriptSerializer(); List<Person> list = new List<Person>(); for (int i = 0; i < 10; i++) { Person p = new Person("張三" + i, "重慶" + i, "10" + i); list.Add(p); } MessageBox.Show(JsonConvert.SerializeObject(list)); //從JSON字符串生成集合對象 String json="[{\"Name\":\"張三0\",\"Address\":\"重慶0\",\"Age\":\"100\"},{\"Name\":\"張三1\",\"Address\":\"重慶1\",\"Age\":\"101\"}] "; var list=JsonConvert.DeserializeObject<Person>(json);
3.引用微軟如下兩個DLL
//注意引用:System.Runtime.Serialization,System.ServiceModel.Web // 從一個對象信息生成Json串 public static string ObjectToJson(object obj) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); MemoryStream stream = new MemoryStream(); serializer.WriteObject(stream, obj); byte[] dataBytes = new byte[stream.Length]; stream.Position = 0; stream.Read(dataBytes, 0, (int)stream.Length); return Encoding.UTF8.GetString(dataBytes); } // 從一個Json串生成對象信息 public static object JsonToObject(string jsonString, object obj) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)); return serializer.ReadObject(mStream); }
備注:
用到的類
public class Person { public String Name { get; set; } public String Address { get; set; } public int Age { get; set; } public Person() { } public Person(String name, String address, String age) { this.Name = name; this.Address = address; this.Age = age; } }