添加引用,Newtonsoft.Json.dll
using Newtonsoft.Json.Linq;
//字符串轉json public static void strJson() { string jsonText = "{"shenzheng":"深圳","beijing":"北京","shanghai":[{"zj1":"zj11","zj2":"zj22"},"zjs"]}"; JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);//或者JObject jo = JObject.Parse(jsonText); string zone = jo["shenzheng"].ToString();//輸出 "深圳" string zone_en = jo["shanghai"].ToString();//輸出 "[{"zj1":"zj11","zj2":"zj22"},"zjs"]" string zj1 = jo["shanghai"][1].ToString();//輸出 "zjs" Console.WriteLine(jo); }
//對象與數組轉JSON public static void GetJsonString() { //初始化對象 Obj product = new Obj() { Name = "蘋果", Price = 5.5 }; //序列化 string o = new JavaScriptSerializer().Serialize(product);//值:"{\"Name\":\"蘋果\",\"Price\":5.5}" //數組轉json List<Obj> products = new List<Obj>(){ new Obj(){Name="蘋果",Price=5.5}, new Obj(){Name="橘子",Price=2.5}, new Obj(){Name="干柿子",Price=16.00} }; ProductList productlist = new ProductList(); productlist.GetProducts = products; //序列化 string os = new JavaScriptSerializer().Serialize(productlist); //輸出 "{\"GetProducts\":[{\"Name\":\"蘋果\",\"Price\":5.5},{\"Name\":\"橘子\",\"Price\":2.5},{\"Name\":\"干柿子\",\"Price\":16}]}" } //json轉對象、數組, 反序列化 public static void JSONStringToList() { //json格式字符串 string JsonStr = "{Name:'蘋果',Price:5.5}"; JavaScriptSerializer Serializer = new JavaScriptSerializer(); //json字符串轉為對象, 反序列化 Obj obj = Serializer.Deserialize<Obj>(JsonStr); Console.Write(obj.Name + ":" + obj.Price + "\r\n"); //json格式字符串 string JsonStrs = "[{Name:'蘋果',Price:5.5},{Name:'橘子',Price:2.5},{Name:'柿子',Price:16}]"; JavaScriptSerializer Serializers = new JavaScriptSerializer(); //json字符串轉為數組對象, 反序列化 List<Obj> objs = Serializers.Deserialize<List<Obj>>(JsonStrs); foreach (var item in objs) { Console.Write(item.Name + ":" + item.Price + "\r\n"); } }