c#处理3种json数据的实例介绍

2023-11-18

这篇文章主要介绍了c#处理包含数组、对象的复杂json数据的方法,,需要的朋友可以参考下

网络中数据传输经常是xml或者json,现在做的一个项目之前调其他系统接口都是返回的xml格式,刚刚遇到一个返回json格式数据的接口,通过例子由易到难总结一下处理过程,希望能帮到和我一样开始不会的朋友。


一、C#处理简单json数据
json数据:

代码如下:

{"result":"0","res_info":"ok","queryorder_info":"info"}


我这里是以jsonmy1.txt文件的形式保存在d盘json文件夹下。
 
构造对象:

代码如下:


 public struct ToJsonMy
 {
    public string result { get; set; }  //属性的名字,必须与json格式字符串中的"key"值一样。
    public string res_info { get; set; }
    public string queryorder_info { get; set; }  
 }


转换过程:

代码如下:

public static void JsonMy()
{
    string json = Jsonstr("D:\\json\\jsonmy1.txt");//Jsonstr函数读取json数据的文本txt                
    JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
    ToJsonMy list = js.Deserialize<ToJsonMy>(json);    //将json数据转化为对象类型并赋值给list
    string result = list.result;             
    string res_info = list.res_info;
    string queryorder_info = list.res_info;
}


二、C#处理包含对象的json数据
json数据:jsonmy2.txt

代码如下:

{"result":"0","res_info":"ok","queryorder_info":{"order_num":"5","orderdetail":"ok"}}


构造对象:

代码如下:


public struct ToJsonMy2
{
    public string result { get; set; } 
    public string res_info { get; set; }
    public queryorder_info queryorder_info;
}
public struct queryorder_info
{
    public string order_num { get; set; }
    public string orderdetail { get; set; }
};


转换过程:

代码如下:

public static void JsonMy2()
{
    string json = Jsonstr("D:\\json\\jsonmy2.txt");
    JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
    ToJsonMy2 list = js.Deserialize<ToJsonMy2>(json);    //将json数据转化为对象类型并赋值给list
    string result = list.result;   
    string res_info = list.res_info;
    string order_num = list.queryorder_info.order_num;
    string orderdetail = list.queryorder_info.orderdetail;
}


三、C#处理包含对象、数组的json数据
json数据:jsonmy4.txt

代码如下:

{"result":"0","res_info":"ok","queryorder_info":{"order_num":"5","orderdetail":[{"CFTUin":"769839263","CancelDeadline":"2013-09-12 23:00:00","CheckInDate":"2013-09-12 00:00:00","CheckOutDate":"2013-09-13 00:00:00","CityID":"0101","CurrencyCode":"RMB","HotelID":"00301105","HotelName":"乐家连锁(北京天坛南门店)(原速8酒店(北京天坛南门店)","ListID":"1000000005201308280002999652","PayAmt":"228","PayType":"0","RommsCnt":"1","SPTransID":"65202157","State":"4"},{"CFTUin":"248486133","CancelDeadline":"2013-10-13 23:00:00","CheckInDate":"2013-10-13 00:00:00","CheckOutDate":"2013-10-18 00:00:00","CityID":"0201","CurrencyCode":"RMB","HotelID":"10201314","HotelName":"上海凯顿酒店","ListID":"1000000005201308280002999413","PayAmt":"1140","PayType":"0","RommsCnt":"1","SPTransID":"65197226","State":"4"}]}}


构造对象:

代码如下:

public struct ToJsonMy3
{
    public string result { get; set; }
    public string res_info { get; set; }
    public queryorder_info queryorder_info;
}
public struct queryorder_info
{
    public string order_num { get; set; }
    public List<orderdetail> orderdetail;//数组处理      
};
public struct orderdetail
{
    public string CFTUin { get; set; }
    public string CancelDeadline { get; set; }
    public string CheckInDate { get; set; }
    public string CheckOutDate { get; set; }
    public string CityID { get; set; }
    public string CurrencyCode { get; set; }
    public string HotelID { get; set; }
    public string HotelName { get; set; }
    public string ListID { get; set; }
    public string PayAmt { get; set; }
    public string PayType { get; set; }
    public string RommsCnt { get; set; }
    public string SPTransID { get; set; }
    public string State { get; set; }
};

转换过程:

代码如下:

public static void JsonMy4()
{
    string json = Jsonstr("D:\\json\\jsonmy4.txt");
    JavaScriptSerializer js = new JavaScriptSerializer();   //实例化一个能够序列化数据的类
    ToJsonMy3 list = js.Deserialize<ToJsonMy3>(json);    //将json数据转化为对象类型并赋值给list
    string result = list.result;    
    string res_info = list.res_info;
    string order_num = list.queryorder_info.order_num;
    List<orderdetail> orderdetail = list.queryorder_info.orderdetail;
    string CFTUin = orderdetail[0].CFTUin;
    string HotelName = orderdetail[0].HotelName;
    string ListID = orderdetail[1].ListID;
    string State = orderdetail[2].State;
}

来源:微点阅读  https://www.weidianyuedu.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c#处理3种json数据的实例介绍 的相关文章

随机推荐

  • 什么是JIT

    一些其他解释的网站 http www sohu com a 169704040 464084 1 动态编译 dynamic compilation 指的是 在运行时进行编译 与之相对的是事前编译 ahead of time compilat
  • 用Google浏览器下载网页视频(包括优酷,土豆等网站视频)

    用Google浏览器下载网页视频 包括优酷 土豆等网站视频 一 准备工具 Google浏览器 Video download helper Chrome插件 二 步骤 1 安装Video download helper插件 1 下载网址 ht
  • 设计模式的 C++ 实现---原型模式

    前文回顾 单例模式 一 单例模式 二 观察者模式 简单工厂模式 工厂方法模式 一 工厂方法模式 二 抽象工厂模式 一 抽象工厂模式 二 前言 原型模式指直接用一个已经存在的对象来创建一个新的对象 然后对新对象进行稍微修改即可 类似复制的操作
  • 动手学CV-目标检测入门教程4:模型结构

    3 4 模型结构 本文来自开源组织 DataWhale CV小组创作的目标检测入门教程 对应开源项目 动手学CV Pytorch 的第3章的内容 教程中涉及的代码也可以在项目中找到 后续会持续更新更多的优质内容 欢迎 如果使用我们教程的内容
  • 在单链表中删除指定值的节点

    在单链表中删除指定值的节点 题目 给定一个单链表和一个数val 删除链表中所有值为val的节点 例如 1 gt 2 gt 3 gt 4 删除3 结果为 1 gt 2 gt 4 思路1 用栈 def remove node with val1
  • Java中如何设置注释模板呢?

    转自 Java中如何设置注释模板呢 下文笔者讲述在日常开发IDE工具中设置注释模板的方法分享 如下所示 Eclipse中设置Java注释模板 Eclipse设置注释模板的菜单 Window gt Preference gt Java gt
  • 实时音频编解码之八 频带扩展

    本文谢绝任何形式转载 谢谢 1 4 8 频带扩展 在线性预测应用中 由于极点过于靠近单位圆 合成滤波器可能处于临界稳定的状态 在定点实现中这一问题更加严重 定点的量化和计算中的精度损失可能使得临界稳定的滤波器变得不稳定 极点位于单位圆外 这
  • maven 配置篇 之 settings.xml 整理中...

    maven 配置 settings xml maven2比起maven1 来说 需要配置的文件少多了 主要集中在pom xml和settings xml中 先来说说settings xml settings xml对于maven 来说相 当
  • 【JS】jsx/tsx是什么?为什么 Vue3 的组件库都在使用 jsx/tsx?如何在Vue3中使用 jsx/tsx?

    前几天得到一个疑问 为什么 React 要用 JSX 语法 这样显得代码好像 很耦合 按照传统应推荐 html js css 模版分离 这样设计的优越性到底在哪里 一 jsx是什么 JSX 即 javascript Xml的缩写 是Face
  • Springboot 封装ssh 服务

    前提条件 Linux 已经启动SSH 服务或Windows 启动SSH 服务 整体项目结构 第一步 BuleSky 的pom xml 文件
  • CMake——cmake_minimum_required

    命令简介 cmake minimum required用于设定cmake的最低版本 cmake minimum required VERSION
  • 入门强化学习(Q-learning→DQN→DDQN)

    基础 只要具备CNN分类算法的基本认识 讲解内容 内容主要通过 飞翔小鸟 游戏为例 探究如下2个问题 强化学习原理 以Q learning算法为例 深度强化学习原理 以DQN DDQN算法为例 然后大概讲下DDQN算法 如何在更复杂的解锁任
  • OLED透明屏厚度:引领未来显示技术的革命

    OLED透明屏作为一种未来显示技术 其薄度在整个行业中具有重要意义 在这篇文章中 尼伽将详细介绍OLED透明屏厚度的优势 技术挑战以及应用案例 旨在为读者全面了解OLED透明屏的发展前景 一 OLED透明屏厚度的优势 OLED透明屏采用柔性
  • springboot项目中对文件夹进行监控

    需要的依赖
  • Quartz 基本使用

    Quartz 基本使用 一 Quartz的核心概念 二 Quartz的几个常用API 三 Quartz的使用 四 Quartz核心详解 五 JobListener 六 TriggerListener 七 SchedulerListener
  • 更改:为硬件保留的内存

    电脑 联想thinkbook16P 系统 win11 内存 16G 更改前 2 3G 更改后 827MB 一 关机 不同的型号电脑进入boss模式的按键不同 我的是按F1 自己去找进入boss模式的方式 二 进入boss模式 进入boss模
  • ARM运行可执行文件出现/usr/lib/libstdc++.so.6: version `CXXABI_ARM_1.3.3' not found解决

    1 关于Linux PC上出现这种问题容易解决 直接下载个高版本的libstdc so 6 0 x复制到 usr lib中 软连接一下就好了 ln s libstdc so 6 0 x libstdc so 6 2 但是在ARM板上执行可执
  • 1 映射与函数

    文章目录 集合 集合表示法 区间与领域 两个逻辑量词 映射 函数 函数的图形 反函数 集合 集合表示法 区间与领域 两个逻辑量词 映射 函数 函数的图形 反函数
  • JavaScript一种将数据库记录建立层级关系的处理方法

    JavaScript一种将数据库记录建立层级关系的处理方法 背景 方案 提示 背景 项目开展中 有些数据往往具有层级关系 在数据中用ID Parent来标示 那么在前端如何有效的还原这种层级关系 而其是很多层级的情况 方便的将数据加载的树
  • c#处理3种json数据的实例介绍

    这篇文章主要介绍了c 处理包含数组 对象的复杂json数据的方法 需要的朋友可以参考下 网络中数据传输经常是xml或者json 现在做的一个项目之前调其他系统接口都是返回的xml格式 刚刚遇到一个返回json格式数据的接口 通过例子由易到难