c#中string字符串转为json与json转对象

添加引用,Newtonsoft.Json.dll
using Newtonsoft.Json.Linq;

//使用SerializeObject函数,可以将结构体转化为字符串
//string jsonText = JsonConvert.SerializeObject(ss);
//DeserializeObject函数,可以将字符串转化为结构体

  //字符串转json
  public static void strJson()
  {
    string jsonText = "{"shenzheng":"深圳","beijing":"北京","shanghai":[{"zj1":"zj11","zj2":"zj22"},"zjs"]}";
 
  //DeserializeObject函数,可以将字符串转化为结构体 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 + "");
 
         //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 + "");
         }
     }  
posted @ 2022-10-30 22:44  唐飞  阅读(909)  评论(0编辑  收藏  举报