.net 中 Json数据转实体类,实体类转Json

news/2024/4/24 4:49:02/

1.获取一个页面的json值,转换为实体类

public static void GetPurchaseMatPriceLogList()

        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("www.json.com");
            request.Timeout = 5000;
            request.Method = "GET";
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Console.WriteLine("内容类型:" + response.ContentType);
            Console.WriteLine("内容长度:" + response.ContentLength);
            Console.WriteLine("服务器名:" + response.Server);
            Console.WriteLine("资源的URI:" + response.ResponseUri);
            Console.WriteLine("HTTP协议版本:" + response.ProtocolVersion);
            Console.WriteLine("相应状态:" + response.StatusCode);
            Console.WriteLine("相应方法:" + response.Method);
            //头信息
            for (int i = 0; i < response.Headers.Count; ++i)
            {
                Console.WriteLine("\nHeader Name:{0},----------Value:{1}", response.Headers.Keys[i], response.Headers[i]);
            }


            StreamReader sr = new StreamReader(response.GetResponseStream());
            string jsonstr = sr.ReadToEnd();  //这是获取到的Json字符串
            //开始转换
            DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<PurchaseMatPriceLogList>));
            //jsonstr = "[" + jsonstr + "]";
            MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonstr));
            object ob = serializer.ReadObject(stream);
            List<PurchaseMatPriceLogList> ls = (List<PurchaseMatPriceLogList>)ob;
            if (ls == null)
            {
                throw new ArgumentNullException("未获取到最新的数据");
            }


            //判断每一条数据是不是当天,如果是就更新,不是就添加
            foreach (PurchaseMatPriceLogList pl in ls)
            {
                //暂时只处理板材
                if (pl.metel_type_title == "不锈钢板" || pl.metel_type_title == "碳钢板材")
                {
                    PurchaseMatPriceLogApp.AddIUDPurchaseMatPriceLog(pl);
                }
            }

        }


2.将实体类中的值转换为json

  1. public string getJsonInfo()  
  2.         {  
  3.             UserInfo userInfo = new UserInfo();  
  4.             //userInfo.strNameInfo = "张三";  
  5.             //userInfo.intAgeInfo = 23;  
  6.             //userInfo.intTelInfo = 66666;  
  7.             //userInfo.strAddrInfo = "北京市";  
  8.             //userInfo.strPasswordInfo = "yhx.123";  
  9.             userInfo.strName = "张三";  
  10.             userInfo.intAge = 23;  
  11.             userInfo.strPsd = "yhx.123";  
  12.             userInfo.intTel = 2324;  
  13.             userInfo.strAddr = "北京市";  
  14.             //将对象序列化json  
  15.             DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(UserInfo));  
  16.             //创建存储区为内存流  
  17.             System.IO.MemoryStream ms = new MemoryStream();  
  18.             //将json字符串写入内存流中  
  19.             serializer.WriteObject(ms, userInfo);  
  20.             System.IO.StreamReader reader = new StreamReader(ms);  
  21.             ms.Position = 0;  
  22.             string strRes = reader.ReadToEnd();  
  23.             reader.Close();  
  24.             ms.Close();  
  25.             return strRes;  
  26.         }  
  27.   
  28.         /// <summary>  
  29.         /// 将json数据转换成实体类     
  30.         /// </summary>  
  31.         /// <returns></returns>  
  32.         private static List<UserInfo> getObjectByJson(string jsonString)  
  33.         {  
  34.             // 实例化DataContractJsonSerializer对象,需要待序列化的对象类型  
  35.             DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<UserInfo>));  
  36.             //把Json传入内存流中保存  
  37.             jsonString = "[" + jsonString + "]";  
  38.             MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));  
  39.             // 使用ReadObject方法反序列化成对象  
  40.             object ob = serializer.ReadObject(stream);  
  41.             List<UserInfo> ls = (List<UserInfo>)ob;  
  42.             return ls;  
  43.         }  
  1. /// <summary>  
  2.         /// 在页面上显示转换为实体类数据  
  3.         /// </summary>  
  4.         private string  disJsonInfo(List<UserInfo> us)  
  5.         {  
  6.             string strItem = "";  
  7.             foreach(var item in us )  
  8.             {  
  9.                 strItem += item.strName + ":" + item.strPsd + ":" + item.intAge + ":" + item.intTel + ":" + item.strAddr + "<br/>";  
  10.             }  
  11.             return strItem;  
  12.         }  



http://www.ppmy.cn/news/886001.html

相关文章

iOS 11:机器学习人人有份

Core ML 原文地址&#xff1a;iOS 11: Machine Learning for everyone原文作者&#xff1a;Matthijs Hollemans译文出自&#xff1a;掘金翻译计划译者&#xff1a;Changkun Ou校对者&#xff1a;wilsonandusa atuooo 本文同步发布于公众号&#xff1a;AIMaster。在这里&#xf…

[译] iOS 11:机器学习人人有份

本文讲的是[译] iOS 11&#xff1a;机器学习人人有份&#xff0c; 原文地址&#xff1a;iOS 11: Machine Learning for everyone 原文作者&#xff1a;Matthijs Hollemans 译文出自&#xff1a;掘金翻译计划 译者&#xff1a;Changkun Ou 校对者&#xff1a;wilsonandusa atuoo…

【QT项目】实现设置参数,并且开机后,仍然显示上次实验数据

1&#xff1a;UI界面设计 2&#xff1a;参数设计.h文件 里面声明变量&#xff08;你的参数&#xff09;&#xff0c;用到的函数等等 float width; //宽度float thickness; //厚度float radius; …

[实战笔记]Android文本编辑的一些实用技巧

有一段时间忙碌了&#xff0c;今天就好好总结记录一下这阵子学到的一些小技巧好了。这一篇先记录一下关于文本编辑的小事儿&#xff0c;Here we go&#xff01; ************************************************ 一、插入符号 现在做的项目由于是多语言的&#xff0c;加上…

C语言socket编程一socket之Winsock API

参考网址&#xff1a;https://blog.csdn.net/Datura_Metel/article/details/79900395 https://www.2cto.com/kf/201804/736240.html https://blog.csdn.net/m0_37947204/article/details/80489431 https://blog.csdn.net/jinmie0193/article/details/78951055 哈工大相关课程pp…

[转] 【卡饭首发】卡巴斯基2016年Q1威胁演化报告

目录 0x01 第一季度的数据 0x02 重大安全事件概述 Ⅰ有目标性的攻击 ①BlackEnergy2/3 ②Poseidon ③Hacking Team ④Operation BLOCKBASTER ⑤针对医院的攻击 Ⅱ网络犯罪活动 ①Adwind&#xff08;RAT) ②Banking threats银行威胁 ③FakeCERT ④Bangladesh …

接口 [java]

接口(重点) 基本概念: 接口就是一种比抽象类还要抽象的类,体现为接口中所有的成员方法都是抽象方法 定义类的关键字是class 定义接口的关键字是interface 继承的关键字是extends 实现接口的关键字是implements 注意: ​ 接口中不能定义成员变量,只能定义常量 接口中只能…

神龙X-Dragon,这技术“范儿”如何?| 问底中国IT技术演进

在CSDN总部会议室&#xff0c;阿晶首次见到了阿里云智能研究员、弹性计算技术负责人张献涛——这位不仅仅在阿里云智能内部&#xff0c;在业内也是响当当的虚拟化技术大牛。现在回想起来&#xff0c;当时聊了没两句&#xff0c;阿晶就问了这样一个问题&#xff0c;“阿里云这款…

Lammps 初学者——in 文件中文解析

1.初始化 Units&#xff1a; Units 命令是用来设定模拟的原子类型。 Units style&#xff08;lammps 现在提供的有 styleLJ、real、metal、si、cgs、electron&#xff09; LJ 是硬球模型 Real 是真实的原子模型 Metal 是金属原子模型Si 是硅&#xff08;半导体&#xff0…

计算机组成原理中的非门表示,计算机组成原理4-数字逻辑2.ppt

计算机组成原理4-数字逻辑2.ppt (78页) 本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01; 23.9 积分 逻 辑 门 电 路 门电路是用以实现逻辑关系的电子电路&#xff0c;与我们所讲过的基本逻辑关系相对应…

【论文解读:bCNN-Methylpred: Feature-Based Prediction of RNA Sequence Modification Using Branch Convoluti】

bCNN-Methylpred:基于特征的基于分支卷积神经网络的RNA序列修饰预测 摘要1、介绍2、相关研究&#xff08;1&#xff09;CNN的一个新分支&#xff1a;该网络结合了不同编码方案的特征&#xff0c;准确地预测了不同RNA序列中的m6a位点&#xff08;2&#xff09;一种新的编码方案&…

数字逻辑电路学习+期末复习(集成门电路与触发器)

第三章 集成门电路与触发器&#xff08;了解&#xff09; 目录 第三章 集成门电路与触发器&#xff08;了解&#xff09; 3.1 数字集成电路的分类 3.1.1按采用的半导体期间分类 3.2 半导体器件的开关特性 3.2.1晶体二极管的开关特性 3.2.2 晶体三极管的开关特性 3.1 数字…

Java 普通方法中形参列表中以接口作为数据类型实现继承和多态

今天见了一种很奇怪的写法&#xff0c;以前没有见到过&#xff0c;所以做个小记录&#xff0c;供以后思考使用。 在我的印象中&#xff0c;java的接口是不可以实例化的&#xff0c;也就是说没有构造器&#xff0c;没有属性&#xff0c;只有一堆定义好形参和返回值的方法名。不能…

曼珠沙华——三途河畔的接引之花(一)

一直对神秘的东西抱有很大的兴趣&#xff0c;从瓶子那里了解到曼珠沙华后就一直想多了解一些&#xff0c;从网上找到一些资料&#xff0c;权作收藏&#xff0c;真的是很漂亮、又很奇特的花啊&#xff01; 彼岸花。开彼岸&#xff0c;不见花&#xff0c;不见叶。日文&#xff1…

Win11 锁屏、开机画面使用window聚焦 壁纸失效解决方案

1、设置>个性化>锁屏界面>个性化锁屏界面 切换为图片。 2、打开文件资源管理器&#xff0c;导航栏中点击查看>显示>勾选隐藏的项目。 3、打开C&#xff1a;\用户\你的用户\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_xxxxxxx\LocalSta…

数学建模-判断数据是否服从正态分布

大样本用qq图 >1000 皮尔逊相关系数需要正态性检验&#xff0c;利用上面三种方法其中一种 斯皮尔曼相关系数不用正态性检验

《天使爱美丽》

昨天晚上&#xff0c;看了一部老片&#xff0c;《天使爱美丽》。迅雷上下载的不知名版本&#xff0c;翻译漏洞百出&#xff0c;甚至有大段空白&#xff0c;又不是英语&#xff0c;没有字幕就一个词都听不懂。即使这样&#xff0c;仍然非常震撼&#xff0c;法国电影果然是名不虚…

健康天使

将下面的代码保存到启动文件夹下&#xff0c;取名为“健康天使.vbs”实现从电脑启动后&#xff0c;每隔45分钟弹出窗口提示休息一下^_^ set WshShell WScript.CreateObject("WScript.Shell")对话框标题alerttitle "健康天使"提醒内容,vbnewline为换行符…

天使跟我走,世界我都有

今天做一个天使跟着我的鼠标一直动的小案例。简单又有趣呢&#xff01; 让我先来展示下今天做出来的最后结果吧 做这个首先准备一张好看的天使动图&#xff0c;这样在鼠标移动的时候天使煽动翅膀就仿佛在飞一样&#xff01; 在正式做之前我们先来分析分析此案例&#xff1a; 鼠…

ELK插件介绍

ELK插件介绍 一、Grok 正则捕获插件1、概述2、内置正则表达式调用3、自定义表达式调用 二、multiline 多行合并插件1、概念2、安装3、使用 multiline 插件 三、date 时间处理插件1、概念2、操作3、时间戳详解 四、mutate 数据修改插件1、概念2、案例 一、Grok 正则捕获插件 1、…