900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C#与Json实现字符串和对象的互相转换

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

时间:2019-01-03 23:05:34

相关推荐

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实现字符串和对象的互相转换

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。