C#如何通过匿名类直接使用访问JSON数据详解

作者:suikhan 时间:2023-07-20 12:31:53 

实验目的

在C#和Rest/Restful以及其它的Web服务交互过程中,大量使用到JSON传递数据,如何快捷的转化C#对象到JSON和转化JSON到C#对象,成为开发过程中频繁使用的内容。传统的方式下,我们需要定义和JSON对象同步的C#类并实例化成对象以遍操作,这里提供了一个直接使用匿名类的方式,相较于传统方式可以少定义一些类,操作更加简便。

开发环境

C#如何通过匿名类直接使用访问JSON数据详解

实现步骤

1.创建工程:控制台程序,命名为JsonTest

C#如何通过匿名类直接使用访问JSON数据详解

2.添加组件:增加JSON组件

第一步:右键点击项目,选择“管理NuGet程序包”菜单

C#如何通过匿名类直接使用访问JSON数据详解

第二步:在"NuGet: JsonTest"选项卡中选择浏览,输入json后回车,选择Newtonsoft.Json,选择版本后点击安装按钮。

C#如何通过匿名类直接使用访问JSON数据详解

第三步:完成安装

C#如何通过匿名类直接使用访问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();
 }
}
}

执行结果

C#如何通过匿名类直接使用访问JSON数据详解

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();
 }
}
}

执行结果

C#如何通过匿名类直接使用访问JSON数据详解

来源:https://www.jianshu.com/p/c4c7c631a7a9

标签:json数据,c#,匿名类
0
投稿

猜你喜欢

  • java的内部类和外部类用法讲解

    2022-10-18 21:14:41
  • C#实现XML文件操作详解

    2023-07-16 12:36:52
  • Java中List集合去重方法以及效率对比

    2021-11-03 00:15:52
  • Android Studio实现简易计算器设计

    2022-08-22 18:41:55
  • Android开发之Button事件实现与监听方法总结

    2022-02-05 02:45:40
  • java编程实现基于UDP协议传输数据的方法

    2022-11-14 04:22:22
  • Android通过自定义ImageView控件实现图片的缩放和拖动的实现代码

    2022-03-02 22:52:08
  • Android6.0仿微信权限设置

    2023-03-03 09:40:30
  • Android仿支付宝支付密码输入框

    2021-12-31 00:30:31
  • C# dataset存放多张表的实例

    2022-10-10 14:08:13
  • Android组件之服务的详解

    2021-10-14 00:05:30
  • JAVA中的静态代理、动态代理以及CGLIB动态代理总结

    2023-04-03 14:33:39
  • java使用jdbc操作数据库示例分享

    2023-10-29 13:54:21
  • 为什么Spring官方推荐的@Transational还能导致生产事故

    2022-02-13 15:54:37
  • Android自定义view利用PathEffect实现动态效果

    2023-08-17 09:35:00
  • Spring Data JPA中 in 条件参数的传递方式

    2023-11-08 06:45:47
  • Spring boot+beetl+i18n国际化处理的方法

    2023-07-22 00:36:31
  • 解决在Unity中使用FairyGUI遇到的坑

    2023-10-27 13:04:24
  • Android应用开发中Fragment的静态加载与动态加载实例

    2021-11-14 15:14:11
  • Java web的读取Excel简单实例代码

    2023-05-29 08:25:37
  • asp之家 软件编程 m.aspxhome.com