如下所示的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;
}
}
}

最新文章

  1. 反射的一些用法(WP8.1下)
  2. java:提示Could not initialize class sun.awt.X11GraphicsEnvironment
  3. scala中的下划线_
  4. jq滚动监听-导航滚动
  5. Windows server 2008 r2搭建FTP服务器
  6. ftp的20 21端口和主动被动模式
  7. HDU 5745 La Vie en rose (DP||模拟) 2016杭电多校联合第二场
  8. &lt;转载&gt;linux下内存泄露查找、BUG调试
  9. 在ECLIPSE中用MAVEN和TOMCAT来建立WEBAPP
  10. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
  11. DOMContentLoaded vs onload
  12. linux 添加 $path
  13. 大数据工具篇之Hive与HBase整合完整教程
  14. Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询
  15. ios初体验&lt; 运用属性传值,登录&gt;
  16. C语言系列之printf和%12d的用法(三)
  17. ArcGIS 网络分析[8.4] 资料4 聚合——创建及打开网络数据集的类实现
  18. 记一个常见的ms sql server中取第N条记录的方法
  19. rsync+inotify实现全网自动化数据备份-技术流ken
  20. 对Array.prototype.slice.call()方法的理解

热门文章

  1. Charles常见问题
  2. memset函数使用
  3. springcloud提供开放api接口签名验证
  4. access denied for user &#39;root&#39;@&#39;localhost&#39;
  5. Glib之GObject宏介绍
  6. 初学python - 常见函数使用
  7. GitHub+Hexo 搭建个人网站详细教程
  8. BZOJ2668:[CQOI2012]交换棋子(费用流)
  9. zabbix 3.0 快速安装文档
  10. P2252 取石子游戏 威佐夫博弈