C#与Json实现字符串和对象的互相转换

背景

最近项目中包含前后端数据交互,后台采用C#语言,自然少不了与前端的数据交互,经商议采用Json数据格式进行交互。

简单实现

1.新建C#控制台项目Test

2.解决方案管理器中右键单击引用->添加引用

在程序集中找到System.Web.Extensions程序集勾选,确定。

3.在项目中引用Json序列化命名空间

 

4.新建一个简单公有类Person,使其拥有三个字段 姓名name(String),年龄age(Int32),分数score(Int32 []),并为其添加公有属性,再覆盖实现其字符串化方法ToString,源码如下

public class Person
{
     private string name;
     public String Name
     {
         set { this.name = value; }
         get { return this.name; }
     }
     
     private int age;
     public int Age
     {
         set { this.age = value; }
         get { return this.age; }
     }

     private int[] score;
     public int[] Score
     {
         set { this.score = value; }
         get { return this.score; }
     }

     public override string ToString()
     {
         return $"名称是{name},年龄是{age},分数列表{String.Join(",",this.score)}";
     }
}

 5.使用JavaScriptSerializer类提供的API来实现我们的业务需求,代码如下

public static void Main()
{
    //提供一个对象
    Person person = new Person();
    person.Name = "小明";
    person.Age = 12;
    person.Score = new int[] { 100, 98, 99 };
    Console.WriteLine("person 初始内容 : " + person.ToString());
    Console.WriteLine();

    //创建JavaScriptSerializer对象
    JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();

    //测试对象->Json格式化操作
    String json = javaScriptSerializer.Serialize(person);
    Console.WriteLine("person对象 的 json 格式 : " + json);
    Console.WriteLine();

    //测试Json数据->对象化操作
    Person personFromJson = javaScriptSerializer.Deserialize<Person>(json);
    Console.WriteLine("json数据对象化结果 : " + personFromJson.ToString());
    Console.WriteLine();

    //避免程序调试完毕后一闪而过
    Console.ReadKey();
}

运行结果

 6.代码解析
JavaScriptSerializer类提供对象方法String Serialize(object obj)可以对一个对象Json格式化,返回一个Json格式的字符串。
JavaScriptSerializer类提供对象泛型方法T Deserialize(T t)可以对一个Json格式字符串反序列化为一个T类型的对象。

转自:C#与Json实现字符串和对象的互相转换

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值