C#如何通过匿名类直接使用访问JSON数据详解
2018-02-19 12:00
841 查看
实验目的
在C#和Rest/Restful以及其它的Web服务交互过程中,大量使用到JSON传递数据,如何快捷的转化C#对象到JSON和转化JSON到C#对象,成为开发过程中频繁使用的内容。传统的方式下,我们需要定义和JSON对象同步的C#类并实例化成对象以遍操作,这里提供了一个直接使用匿名类的方式,相较于传统方式可以少定义一些类,操作更加简便。
开发环境
实现步骤
1.创建工程:控制台程序,命名为JsonTest
2.添加组件:增加JSON组件
第一步:右键点击项目,选择“管理NuGet程序包”菜单
第二步:在"NuGet: JsonTest"选项卡中选择浏览,输入json后回车,选择Newtonsoft.Json,选择版本后点击安装按钮。
第三步:完成安装
3.编写代码:简单结构
JSON格式如下:
{ "name":"张三", "sex":"男", "birthday": "2018-02-09" }
CSharp代码
using Newtonsoft.Json; using System; namespace JsonTest { class Program { static void Main(string[] args) { string jsonstr = JsonConvert.SerializeObject(new { name = "张三", sex = "男", birthday = "2018-02-09" }); Console.WriteLine("对象序列化后的字符串为:"); Console.WriteLine(jsonstr); Console.WriteLine("\n\n字符串反序列化为对象后的值为:"); var jsonobj = JsonConvert.DeserializeObject<dynamic>(jsonstr); Console.WriteLine("姓名:" + jsonobj.name); Console.WriteLine("性别:" + jsonobj.sex); Console.WriteLine("生日:" + jsonobj.birthday); Console.Read(); } } }
执行结果
4.编写代码:数组的操作
CSharp代码
using Newtonsoft.Json; using System; namespace JsonTest { class Program { static void Main(string[] args) { string jsonstr = JsonConvert.SerializeObject(new[]{ new { name = "张三", sex = "男", birthday = "2018-02-09" }, new{ name = "李四", sex = "男", birthday = "2018-02-09" } }); Console.WriteLine("对象序列化后的字符串为:"); Console.WriteLine(jsonstr); Console.WriteLine("\n\n字符串反序列化为对象后的值为:"); var jsonarr = JsonConvert.DeserializeObject<dynamic[]>(jsonstr); foreach (var jsonobj in jsonarr) { Console.WriteLine("姓名:" + jsonobj.name); Console.WriteLine("性别:" + jsonobj.sex); Console.WriteLine("生日:" + jsonobj.birthday); Console.WriteLine("---------------"); } Console.Read(); } } }
执行结果
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
您可能感兴趣的文章:
相关文章推荐
- 详解通过JSON数据使用VUE.JS
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- 装饰者模式的学习(c#) EF SaveChanges() 报错(转载) C# 四舍五入 保留两位小数(转载) DataGridView样式生成器使用说明 MSSQL如何将查询结果拼接成字符串 快递查询 C# 通过smtp直接发送邮件 C# 带参访问接口,WebClient方式 C# 发送手机短信 文件 日志 写入 与读取
- 使用参数拦截器通过注解直接从JSON对象中获取数据
- 如何在前台脚本通过json传递数据到后台(使用微软自带的ajax)
- flask 如何使用接口以及通过json传递数据
- 详解在Vue中如何使用axios跨域访问数据
- [原创]java WEB学习笔记55:Struts2学习之路---详解struts2 中 Action,如何访问web 资源,解耦方式(使用 ActionContext,实现 XxxAware 接口),耦合方式(通过ServletActionContext,通过实现 ServletRequestAware, ServletContextAware 等接口的方式)
- 客户端使用Ajax访问struts2 , struts2如何返回一个json数据!json-lib与flexjson
- 使用JavaScript访问通过JSON传递数据的Web服务
- HTMLParser使用详解(4)- 通过Visitor访问内容
- 如何使用 Visual C# 2005 或 Visual C# .NET 通过 DataSet 对象更新数据库
- HTMLParser使用详解(4)- 通过Visitor访问内容
- 通过GET方法来发送数据时不能直接使用变量分隔符
- 如何通过 Visual C# 使 Excel 自动执行操作以使用数组来填充或获取某区域中的数据
- HTMLParser使用详解(3)- 通过Filter访问内容
- php如何判断用户通过手机wap访问还是电脑直接访问
- 不通过WINDOWS直接通过程序建立数据源详解(vb访问注册表)