Json 序列化为Dictionary
2024-08-25 00:52:40
如下所示的json字符串中包含中文属性转换成英文属性
["sid":"dd1312","success":true,"data":{
"发票代码": "032001500XXX",
"发票号码": "25272XXX",
"开票日期": "2017年XX月XX日",
"校验码": "15922733756000XXXXXX",
"发票金额": "XXX.00",
"发票税额": "XXX.43",
"不含税金额": "XXX.57",
"受票方名称": "XXX",
"受票方税号": "XXXX",
"受票方地址、电话": "XXX",
"受票方开户行、账号": "XXX",
"销售方名称": "XXX",
"销售方税号": "913201043023368XXX",
"销售方地址、电话": "XXX",
"销售方开户行、账号": "XXX"
}]
现将json字符串转换成Dictionary类型
/// <summary>
/// 将Json数据反序列化为Dictionary
/// </summary>
/// <param name="jsonData">json数据</param>
/// <returns></returns>
public Dictionary<string, object> JsonToDictionary(string jsonData)
{
//实例化JavaScriptSerializer类的新实例
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
try
{
//将指定的 JSON 字符串转换为 Dictionary<string, object> 类型的对象
return javaScriptSerializer.Deserialize<Dictionary<string, object>>(jsonData);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
然后将中文属性转换成对应的英文属性
Dictionary<string,object> dic = JsonToDictionary(ress);
InvoiceAliOcr res = new InvoiceAliOcr();
res.data = new Ocr();
if (dic != null &&dic.ContainsKey("data"))
{
Dictionary<string, object> dataSet = (Dictionary<string, object>)dic["data"];
foreach (KeyValuePair<string, object> item in dataSet)
{
switch (item.Key)
{
case "发票代码":
res.data.fpdm = item.Value.ToString();
break;
case "发票号码":
res.data.fphm = item.Value.ToString();
break;
case "开票日期":
res.data.kprq = string.IsNullOrEmpty(item.Value.ToString()) ? "" : Convert.ToDateTime(item.Value.ToString()).ToString("yyyyMMdd");
break;
case "校验码":
res.data.code = item.Value.ToString();
break;
case "发票金额":
res.data.sumamount = item.Value.ToString();
break;
case "发票税额":
res.data.taxamount = item.Value.ToString();
break;
case "不含税金额":
res.data.notaxamount = item.Value.ToString();
break;
case "受票方名称":
res.data.gfMc = item.Value.ToString();
break;
case "受票方税号":
res.data.gfCode = item.Value.ToString();
break;
case "销售方名称":
res.data.sfMc = item.Value.ToString();
break;
case "销售方税号":
res.data.sfCode = item.Value.ToString();
break;
default:
break;
}
}
}
最新文章
- 反射的一些用法(WP8.1下)
- java:提示Could not initialize class sun.awt.X11GraphicsEnvironment
- scala中的下划线_
- jq滚动监听-导航滚动
- Windows server 2008 r2搭建FTP服务器
- ftp的20 21端口和主动被动模式
- HDU 5745 La Vie en rose (DP||模拟) 2016杭电多校联合第二场
- <;转载>;linux下内存泄露查找、BUG调试
- 在ECLIPSE中用MAVEN和TOMCAT来建立WEBAPP
- 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
- DOMContentLoaded vs onload
- linux 添加 $path
- 大数据工具篇之Hive与HBase整合完整教程
- Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询
- ios初体验<; 运用属性传值,登录>;
- C语言系列之printf和%12d的用法(三)
- ArcGIS 网络分析[8.4] 资料4 聚合——创建及打开网络数据集的类实现
- 记一个常见的ms sql server中取第N条记录的方法
- rsync+inotify实现全网自动化数据备份-技术流ken
- 对Array.prototype.slice.call()方法的理解
热门文章
- Charles常见问题
- memset函数使用
- springcloud提供开放api接口签名验证
- access denied for user &#39;root&#39;@&#39;localhost&#39;
- Glib之GObject宏介绍
- 初学python - 常见函数使用
- GitHub+Hexo 搭建个人网站详细教程
- BZOJ2668:[CQOI2012]交换棋子(费用流)
- zabbix 3.0 快速安装文档
- P2252 取石子游戏 威佐夫博弈