Jsonhelper类
public static class JsonHelper
{
#region json转对象
/// <summary>
/// json转对象
/// </summary>
/// <param name="JsonText"></param>
/// <returns></returns>
public static T JsonToObject<T>(string JsonText) where T : class
{
if (string.IsNullOrWhiteSpace(JsonText))
{
return null;
}
return JsonConvert.DeserializeObject<T>(JsonText);
}
public static List<T> JsonToListObject<T>(string JsonText) where T : class
{
if (string.IsNullOrWhiteSpace(JsonText))
{
return null;
}
return JsonConvert.DeserializeObject<List<T>>(JsonText);
}
#endregion #region 对象转json
/// <summary>
/// 对象转json
/// </summary>
/// <param name="Object"></param>
/// <returns></returns>
public static string ObjectToJson(object Object)
{
if (Object == null)
{
return null;
}
return JsonConvert.SerializeObject(Object);
}
#endregion
}
}
上边需要添加nuget Newtonsoft.Json的v包 下边不需要
JavaScriptSerializer js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类 0成功 -1失败
ToJsonMy list = js.Deserialize<ToJsonMy>(str);
public void PostDZFP()
{
string SMBH = "913001012";
#region 赋值
DataTable dt = DbHelperOra.Query("SELECT (SELECT XINGM FROM GLASS_HUIYXX WHERE HUIYBH=A.HUIYBH) XINGM,A.SHOUKDBH,A.SHISJE JINE,MONEY2CHINESE(A.SHISJE) DXJE,(SELECT XINGM FROM GLASS_USER WHERE BIANH=A.SHOUKR) CAOZY FROM GLASS_SHOUKD A WHERE SHOUKDBH='" + SKDBM + "'").Tables[0];
DataTable dataitems = DbHelperOra.Query("SELECT A.SHANGPBH SP,B.MINGC MC,B.DANW DW,A.ZHUJ ZJ,A.QIUJ QJ,B.TIAOM TM,B.SPLEIX SPLX,( select LEIXMC from glass_spleix where LEIXBH=B.SPLEIX) SPLXMC,A.SHUL SL,A.DANJ DJ,A.ZHEK ZK,A.ZHEHDJ ZHDJ,A.ZHEHXJ ZHXJ,A.MOLING ML,A.HEJ XJ,(CASE A.ISZS WHEN 0 THEN '否' ELSE '是' END) ISZS,A.BEIZHU BZ FROM GLASS_XIAOSMX A,GLASS_SPXX B WHERE A.SHANGPBH=B.BIANH AND A.XIAOSDBH='" + XSDBH + "'").Tables[0];
List<auxItemModel> ListauxItemModel = new List<auxItemModel>();
for (int i = 0; i < dataitems.Rows.Count; i++)
{
auxItemModel auxItemModel = new PankuSoft.Model.auxItemModel();
auxItemModel.auxItemCode = SMBH; //dataitems.Rows[i]["SP"].ToString();
auxItemModel.auxItemName = dataitems.Rows[i]["MC"].ToString();
auxItemModel.auxItemRelatedCode = SMBH;//dataitems.Rows[i]["SPLX"].ToString(); ;
auxItemModel.auxItemRelatedName = dataitems.Rows[i]["SPLXMC"].ToString();
auxItemModel.auxItemQuantity = dataitems.Rows[i]["SL"].ToString();
auxItemModel.auxItemUnit = dataitems.Rows[i]["DW"].ToString();
auxItemModel.auxItemStd = dataitems.Rows[i]["DJ"].ToString();
auxItemModel.auxItemAmount = dataitems.Rows[i]["XJ"].ToString();
auxItemModel.auxItemRemark = dataitems.Rows[i]["BZ"].ToString();
ListauxItemModel.Add(auxItemModel);
}
List<DZPJCREATEINVOICEITEMS> ListItem = new List<DZPJCREATEINVOICEITEMS>() ;
DZPJCREATEINVOICEITEMS items = new DZPJCREATEINVOICEITEMS();
items.itemCode = SMBH;
items.itemName = "视光门诊";
items.itemStd = Math.Round((Convert.ToDecimal(dt.Rows[0]["JINE"].ToString())/2),2).ToString();
items.itemUnit = "元";
items.itemAmount = dataitems.Rows.Count.ToString();
items.amount = dt.Rows[0]["JINE"].ToString();
items.note = dataitems.Rows[0]["BZ"].ToString();
items.auxItem = ListauxItemModel;
ListItem.Add(items);
DZPJCREATEINVOICE DZPJKP = new DZPJCREATEINVOICE()
{
reqSource = "2",
placeCode = "",
patType = "1",
patNumber = SKDBM,
email = "",
phone = "",
idcardNo = "",
type = "1",
payerPartyType = "1",
payerPartyCode = "",
payerPartyName = dt.Rows[0]["XINGM"].ToString(),
payerAcct = "",
payerOpBk = "",
payMode = cmb_FKFS.Text == "支付宝" ? "4" : cmb_FKFS.Text == "微信" ? "4" : "1",
recName = "",
recOpBk = "",
recAcct = "",
totalAmount = dt.Rows[0]["JINE"].ToString(),
repCreater = dt.Rows[0]["CAOZY"].ToString(),
checker = dt.Rows[0]["CAOZY"].ToString(),
mainExt = new object { },
items = ListItem
};
DZPJRequestModel DZPJModel = new DZPJRequestModel()
{
method = DZPJ.createInvoice,
content = JsonHelper.ObjectToJson(DZPJKP),
operatorCode = Common.userBH,
operatorName = Common.userMC,
requestId = DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + SKDBM,
security = ""
};
#endregion
string PostUrl = ini.IniReadValue("DZFPURL", "ADDRESS");
var data = JsonHelper.JsonToObject<DZPJResponseModel>(HttpRespost.Post(DZPJModel, PostUrl)) as DZPJResponseModel;
if (data.code == "0")
{
XtraMessageBox.Show("电子票据开具失败,请开先纸质票,然后联系管理员!", "提示");
if (DialogResult.OK==XtraMessageBox.Show("是否开纸质凭证","提示",MessageBoxButtons.OKCancel))
{
if (cmb_FKFS.Text == "微信支付")
{
ReportClass.PrintShouKDXP(SKDBM);
}
if (cmb_FKFS.Text != "医保")
{
ReportClass.PrintShouKD(SKDBM);
}
}
}
else
{
var Result = JsonHelper.JsonToObject<DZPJCREATEINVOICERESULT>(data.data.ToString());
string strSql = $"INSERT INTO DZPJCREATEINVOICERESULT VALUES ('{Result.SERIALNUMBER}','{Result.EINVOICECODE }','{Result.EINVOICENUMBER}','{Result.RANDOMNUMBER}','{Result.ISSUEDATE}','{Result.ISSUETIME}','{Result.BILLPDFADDR}','{Result.BILLPDFURL}','{Result.PLATFORMCHECKURL}','{Result.FILE}','{Result.NOWSTOCK}')";
int res = DbHelperOra.ExecuteSql(strSql);
ReportClass.PrintShouKDXPDZPJ(SKDBM);
} }
Jsonhelper类的更多相关文章
- .net Json JavaScriptSerializer JsonHelper类
结合.net 的JavaScriptSerializer 类实现Json数据处理 调用1: Model.Users m = BLL.UsersBLL.GetUserById(Convert.ToInt ...
- asp.net的JSONHelper 类
调用方法: ){ jsons = json.ToString();}else{ jsons = @"{success:false}";}return jsons; JS ...
- c# JsonHelper类
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...
- JavaScriptSerializer的实现-常用JsonHelper类
最近开始自己写自己的项目了,终于鼓起勇气迈出了自己认为的这一大步! 先来通用的helper类和大家分享一下 ,第一个是Object转为json序列的类,这个网上有很多,但我实践了一下大部分都不能用的, ...
- JsonHelper类(序列化和反序列化辅助类)
1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Web; ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- C#开发微信门户及应用(26)-公众号微信素材管理
微信公众号最新修改了素材的管理模式,提供了两类素材的管理:临时素材和永久素材的管理,原先的素材管理就是临时素材管理,永久素材可以永久保留在微信服务器上,微信素材可以在上传后,进行图片文件或者图文消息的 ...
- CYQ.Data 快速开发EasyUI
EasyUI: 前端UI框架之一, 相对ExtJs来说,算是小了,这两天,抽空看了下EasyUI的相关知识,基本上可以和大伙分享一下: 官网: http://www.jeasyui.com/ 学习的话 ...
- Android开发中的Json字符串与复杂的嵌套对象互转。
Gson 可能是大家都觉得比较简单吧.我发现用JSONObject和网上下载的JSONHelper类使用起来很无语,只能解析简单的单层对象,如果有嵌套的就不能直转转成可用对象了.所以网上找了一会儿,发 ...
- 解决WCF的service端无法使用泛型的问题
思路是将其序列化(比较笨的方法……) 1.引入Newtonsoft.json.dll 2.服务端序列化:return JsonConvert.SerializeObject(result); 3.客户 ...
随机推荐
- 学习ASP.NET Core Blazor编程系列二十一——数据刷新
学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...
- webpack动态配置多静态资源路径,动态配置多上线路径,配置less,多种图片引用方式----"webpack": "^4.41.6",
1.项目场景是有两个静态资源目录,一个用于开发,一个用于发布,上线多个版本,打包多个版本后,也要部署到同一个服务器的同一个端口下. 根据我自己的摸索,我搞出来了下面的配置,自感觉还蛮好用的 先看我的c ...
- openstacksdk快速上手
hello,大家好,这里是费冰,今天是大年初六,唉,这么早就被迫营业了. 那么今天来解读一波openstacksdk. Openstacksdk是什么 其实我很难说明一个是什么的问题.如果你使用过py ...
- linux环境编程(3): 使用POSIX IPC完成进程间通信
1. 写在前面 之前的文章总结了使用管道进行进程间通信的方法,除了pipe和fifo,Linux内核还为我们提供了其他更高级的IPC方式,包括共享内存,消息队列,信号量等,本篇文章会通过一个具有完整逻 ...
- 在Flask中构建API接口的相关概念
在Flask中构建API接口的相关概念 重定向行为 斜杠 以下两个路由的不同之处在于是否使用尾部的斜杠. 第一个路由的URL尾部有一个斜杠,看起来就像一个文件夹,访问一个没有斜杠结尾的URL时,Fla ...
- drf-jwt源码分析以及自定义token签发认证、alc和rbac
1.drf-jwt源码执行流程 1.1 签发(登录) 1.代码: urls.py: from rest_framework_jwt.views import obtain_jwt_token urlp ...
- JavaScript 函数所能传递的最大参数
取决于实现,取决于浏览器和操作系统标准没有规定(65535一般是有的) 来源:https://stackoverflow.com/questions/22747068/is-there-a-max-n ...
- CAS 悲观锁 乐观锁
前面的偏向锁,轻量级锁,重量级锁都是悲观锁, 都会认为必须要对操作对象进行互斥访问,不然就会产生异常, 所以线程只供一个线程使用,阻塞其他线程,是悲观的 在某些情况下,同步的耗时远大于线程切换的时间, ...
- spring-in-action_day01
前景说明:SpringInAction主要致力于SpringBoot为基础的讲解,尽可能多的使用SpringBoot,可以减少显行的配置,如xml配置,可以更加的专注于功能的实现. 第一章:主要讲了如 ...
- 计算机网络基础06-Email应用
1 构成组件 邮件客户端 邮件服务器 SMTP协议 Simple Mail Transfer Protocol 1.1 邮件客户端 读写Email消息 和服务器交互,收发消息 1.2 邮件服务器 邮箱 ...