c# Json转C#实体

这篇具有很好参考价值的文章主要介绍了c# Json转C#实体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Web Api获取 Json数据:

{ "code": 200, "message": "success", "data": { "Barcode": { "BarcodeNo": "YS5193465232200001", "WorkOrder": "N102304065", "ItemNo": "95.56.Z02.11000001", "PlanQty": 90 }, "Parts": [ { "PartDesc": "主板", "PartSn": "AL232300081", "CreateDate": "2023-05-30 10:09:15" }, { "PartDesc": "MAC2", "PartSn": "00073EABC43C", "CreateDate": "2023-05-30 10:09:15" }, { "PartDesc": "MAC", "PartSn": "00073EABC43C", "CreateDate": "2023-05-30 10:09:15" }, { "PartDesc": "硬盘", "PartSn": "323571903BA", "CreateDate": "2023-05-30 10:09:15" }, { "PartDesc": "内存条", "PartSn": "2312121901244", "CreateDate": "2023-05-30 10:09:15" } ], "Stations": [ { "LineDesc": "Line 03", "WorkStationDesc": "前测", "Status": "Pass", "CreateDate": "2023-05-30 17:14:06" }, { "LineDesc": "Line 03", "WorkStationDesc": "老化", "Status": "Pass", "CreateDate": "2023-06-05 11:03:30" }, { "LineDesc": "Line 01", "WorkStationDesc": "外观", "Status": "Pass", "CreateDate": "2023-06-06 19:37:17" }, { "LineDesc": "Line 03", "WorkStationDesc": "组装1", "Status": "Pass", "CreateDate": "2023-05-30 10:09:15" }, { "LineDesc": "Line 03", "WorkStationDesc": "包装3", "Status": "Pass", "CreateDate": "2023-06-13 19:54:32" } ] }, "time": "2023-10-28 23:06:22" }

2.将Json转C#实体类网址:JSON转C#实体类-BeJSON.com

转换后的实体类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ServerSide.Models
{
    //如果好用,请收藏地址,帮忙分享。
    public class Barcode
    {
        /// <summary>
        /// 
        /// </summary>
        public string ?BarcodeNo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ?WorkOrder { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ?ItemNo { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public int ?PlanQty { get; set; }
    }

    public class PartsItem
    {
        /// <summary>
        /// 机箱
        /// </summary>
        public string? PartDesc { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ?PartSn { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ?CreateDate { get; set; }
    }

    public class StationsItem
    {
        /// <summary>
        /// 
        /// </summary>
        public string ?LineDesc { get; set; }
        /// <summary>
        /// 前测
        /// </summary>
        public string ?WorkStationDesc { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ?Status { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ?CreateDate { get; set; }
    }

    public class Data
    {
        /// <summary>
        /// 
        /// </summary>
        public Barcode ?Barcode { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<PartsItem> ?Parts { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public List<StationsItem> ?Stations { get; set; }
    }

    public class Root
    {
        /// <summary>
        /// 
        /// </summary>
        public int ?code { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ?message { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public Data ?data { get; set; }
        /// <summary>
        /// 
        /// </summary>
        public string ?time { get; set; }
    }
}

代码实现:引用库文件:using Newtonsoft.Json;

        public bool GetBarcodeInfo(string strSN)
        {
            string retString = string.Empty;
            string url = $@"{this.webApiPort}MesApi/api/Product/GetBarcodeInfo";
            //List<string> MESMAC = new List<string>();
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?barcodeNo=" + strSN);
                request.Proxy = null;
                request.KeepAlive = false;
                request.Method = "GET";
                request.ContentType = "application/json; charset=UTF-8";
                request.AutomaticDecompression = DecompressionMethods.GZip;

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                string encoding = response.ContentEncoding;
                if (encoding == null || encoding.Length < 1)
                {
                    encoding = "UTF-8"; //默认编码  
                }
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
                retString = reader.ReadToEnd();
                //读取SN 绑定数据
                // 添加代码
                Newtonsoft.Json.Linq.JObject resInfo = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(retString)!;
                //this.barcodeInfo = new Barcode();
                this.barcodeInfo = JsonConvert.DeserializeObject<Root>(resInfo.ToString())!; //JsonConvert.DeserializeObject<Barcode>(resInfo.ToString())!;
                //if (resInfo["code"]!.ToString()=="200")
                if (this.barcodeInfo.code.ToString()=="200")
                {
                    barCodeInfoEntity = new BarCodeInfoEntity();
                    barCodeInfoEntity.BarcodeNo = strSN;
                    barCodeInfoEntity.WorkOrder = this.barcodeInfo!.data!.Barcode!.WorkOrder!.ToString();
                    barCodeInfoEntity.ItemNo = this.barcodeInfo!.data!.Barcode!.ItemNo!.ToString();
                    barCodeInfoEntity.Total_Number = Convert.ToInt32(this!.barcodeInfo!.data!.Barcode!.PlanQty!.ToString());
                    
                    for(int i = 0; i <this!.barcodeInfo!.data!.Parts!.Count();i++)
                    {
                        if (this!.barcodeInfo!.data!.Parts![i]!.PartDesc!.ToString().Contains("主板"))
                            barCodeInfoEntity.PartSn = this!.barcodeInfo!.data!.Parts![i]!.PartSn!.ToString();
                        else if (this!.barcodeInfo!.data!.Parts![i]!.PartDesc!.ToString().Contains("硬盘"))
                            barCodeInfoEntity.Hddinfo = this!.barcodeInfo!.data!.Parts![i]!.PartSn!.ToString();
                        else if (this!.barcodeInfo!.data!.Parts![i]!.PartDesc!.ToString().Contains("内存条"))
                            barCodeInfoEntity.Memoryinfo = this!.barcodeInfo!.data!.Parts![i]!.PartSn!.ToString();
                        else if (this!.barcodeInfo!.data!.Parts![i]!.PartDesc!.ToString().Contains("MAC"))
                            barCodeInfoEntity.MacAddresss += this!.barcodeInfo!.data!.Parts![i]!.PartSn!.ToString() + ",";
                        else if (this!.barcodeInfo!.data!.Parts![i]!.PartDesc!.ToString().Contains("CMEI"))
                            barCodeInfoEntity.Cmei = this!.barcodeInfo!.data!.Parts![i]!.PartSn!.ToString();
                        else if (this!.barcodeInfo!.data!.Parts![i]!.PartDesc!.ToString().Contains("WIFI"))
                            barCodeInfoEntity.WIFI = this!.barcodeInfo!.data!.Parts![i]!.PartSn!.ToString();
                    }
                    if (barCodeInfoEntity != null)
                        barCodeInfoEntity.MacAddresss = barCodeInfoEntity?.MacAddresss?.Trim(',');
                    return true;
                }
                else
                {
                    this.err =this!.barcodeInfo!.message!.ToString();
                    return false;
                }
            }
            catch (Exception ex)
            {
                this.err = "Mes读取数据错误:" + ex.Message;
                return false;
            }
            
        }
        #endregion

Json转换实体的代码:

 Newtonsoft.Json.Linq.JObject resInfo = (Newtonsoft.Json.Linq.JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(retString)!;
this.barcodeInfo = JsonConvert.DeserializeObject<Root>(resInfo.ToString())!;

a>.实体转换成Json利用JsonConvert.SerializeObject 将Barcode转换成Json

b>.Json转换成实体利用JsonConvert.DeserializeObject 将Json装换成对象文章来源地址https://www.toymoban.com/news/detail-726403.html

到了这里,关于c# Json转C#实体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C#读取json文件

    C# 读取 JSON 文件并读取某一个的值可以使用 Newtonsoft.Json 库。假设我们的 JSON 文件如下所示: 要读取其中的某一个的值,首先需要定义一个对应的实体类来存储 JSON 数据。例如,可以定义以下类: 然后,可以使用以下代码读取 JSON 文件,并将其反序列化为 Pers

    2024年02月13日
    浏览(45)
  • C# json生成类

      在C#中使用Newtonsoft.Json解析JSON,首先需要安装Newtonsoft.Json NuGet包。可以通过以下步骤进行安装:   (1) 打开Visual Studio项目。   (2) 在“解决方案资源管理器”中,右键单击项目,然后选择“管理NuGet程序包”。在NuGet包管理器中,搜索“Newtonsoft.Json”。找到Newtonsoft.J

    2024年02月08日
    浏览(29)
  • java如何利用框架实现实体变为json格式

    Java中可以通过多种框架实现将实体类转换为JSON格式的字符串,常用的有以下几种: Jackson:Jackson是一个功能强大的JSON框架,可以将Java对象转换为JSON格式的字符串,也可以将JSON格式的字符串转换为Java对象。 使用Jackson将Java对象转换为JSON字符串,可以使用以下代码: 其中,

    2024年02月06日
    浏览(54)
  • 从 JSON 转 Java 实体的多种方法详解

    将 JSON 数据转换为 Java 对象是现代应用程序开发中常见的任务。在 Java 中,有多种方法可以实现这一目标。本文将详细介绍几种常见的方法,以及它们的优缺点。 1. 手动映射(Manual Mapping) 手动映射是最基础的方法之一,通过使用原生的 Java 核心库或第三方库手动将 JSON 字段

    2024年02月05日
    浏览(42)
  • C#从网址上读取json数据

    需求:从客户给的网址中读取json格式的数据。 找了好多资料,都不太好使,看到了一篇很有帮助的文章。以下大部分内容和这篇找到的文章近似。太不容易了,同时也感谢这篇文章的作者心所欲。 https://www.cnblogs.com/zoujinhua/p/10330066.html 下面总结一下。 在实际开发中,我们经

    2024年01月25日
    浏览(36)
  • java返回前端实体类json数据时如何忽略某个属性

    第一种方法 SpringBoot中忽略实体类中的某个属性不返回给前端的方法:使用Jackson的方式://第一种方式,使用@JsonIgnore注解标注在属性上, 第二种方法 使用@JsonIgnoreProperties标注在类上,可以忽略指定集合的属性 注意 :同时使用@JsonProperty和@JsonIgnore时,可能会导致@JsonIgnore失效

    2024年02月13日
    浏览(41)
  • C#从http上返回JSON数据

    一:C#从http上取JSON数据 向服务器请求数据后,一般时XML或JSON:(以JSON为例) 在C#中WinForm为例操作: Util工具类: 窗体中点击发生事件: 二:公司中已经封好的方法使用: 第一步:先添加引用; Universal.Kits 第二步:书写方法; 第三步:调用方法获取数据; 第四步:转为获取到

    2024年02月03日
    浏览(39)
  • 【Unity】C# 创建/读取/解析JSON数据

    判断是否存在JSON数据文件没有则创建并保存

    2024年02月16日
    浏览(68)
  • c#读取getman网址中的json

    在C#中,您可以使用 HttpClient 类来发送 HTTP 请求并读取 Getman 网址中的 JSON 数据。以下是一个简单的示例: 请注意,上述示例使用了异步方法 Main 和 ReadAsStringAsync ,这是为了避免阻塞主线程。在实际应用中,您可能需要根据您的需求对代码进行适当的调整。 确保将 apiUrl 替换

    2024年01月24日
    浏览(38)
  • C# XML 的读写以及和JSON对比

    通过我们进行跨平台传输,我们需要把某一个平台特有的数据类型转化为一种通用的数据类型序列化和反序列化 通用形式有两种: 《1》JSON:是一种以键值形式组成 《2》XML:可扩展标记语言 XML文件格式要求: 《1》头部需要有XML标记; 《2》每一个XML文件有且只有一个 《

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包