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

Json 序列化为Dictionary的更多相关文章

  1. Json序列化为对象方法

    /// <summary>/// json 序列化为对象/// </summary>/// <typeparam name="T">对象类型&l ...

  2. json 序列化为数组

    我们通常从后台取到json格式的数据到前台进行展示,在这个过程中可能户遇到一些json格式不是自己想要的格式,今天本人就遇到一个棘手的问题,最后在师傅的协助下才进行了正确格式的转换. 可以说最悲哀的莫 ...

  3. Js把Json序列化为Java接受的对象。

    服务器端 Java定义 data class role(var name: String = "", var remark: String = "") data ...

  4. 将Dictionary序列化为json数据 、json数据反序列化为Dictionary

    需要引用System.Web.Extensions  dll类库 /// <summary> /// 将json数据反序列化为Dictionary /// </summary> ...

  5. 使用DataContractJsonSerializer类将类型实例序列化为JSON字符串和反序列化为实例对象 分类: JSON 前端 2014-11-10 10:20 97人阅读 评论(1) 收藏

    一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大 ...

  6. JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象

    JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对 ...

  7. 将 C# 枚举序列化为 JSON 字符串 基础理论

    该转换过程需要引用 Newtonsoft.JSON,这其中的转换过程还是蛮有意思的. 一.定义枚举 /// <summary> /// 托寄物品枚举 /// </summary> ...

  8. JavaScriptSerializer类 对象序列化为JSON,JSON反序列化为对象 。

    JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.说白了就是能够直接将一个C#对象传送到前台页面成为javascript对 ...

  9. LINQ查询返回DataTable类型[轉]與将DataTable序列化为Json格式【轉】

    (原文地址:http://xuzhihong1987.blog.163.com/blog/static/26731587201101853740294/) LINQ查询返回DataTable类型 在使 ...

随机推荐

  1. oracle数据库数据类型和约束

    今天为大家分享一下关键数据库里面的数据类型和约束.我们都知道国家要讲法律,干什么事情都要遵守法律,比如小的时候你上学的时候要遵守课堂纪律.不能迟到和早退,同样的我们在数据库中创建一些表.或者查询一些表 ...

  2. 解决chrome浏览器无法得到window.showModalDialog返回值的问题

    父页面处理: function ProductList() {   var TypeID = window.document.getElementById("Type").valu ...

  3. xampp本地服务器+HBuilder配置php环境

    HBuilder配置PHP环境: 下载,运行HBuilder编辑器 打开右侧小窗口,点击设置图标—>设置web服务器—>外置web服务器                    输入你想要浏 ...

  4. (一)springmvc+spring+mybatis+maven框架搭建

    (一)springmvc+spring+mybatis+maven框架搭建 1.说明 工作之余,为了学习点东西.先搭建个框架. 以后要往里面加东西,比如rabbitMQ.redis.shiro等. 也 ...

  5. 【01】循序渐进学 docker:到底是啥

    写在前面的话 首先说一下,我本身是做运维的,4 年工作,多家公司.所以可能接下来谈到的更多的是一些在工作过程中积累的个人看法.且有些并不具备普遍性,有不合适的地方,全当我在吹牛逼就行. 一开始我们得谈 ...

  6. 用C语言构建一个可执行程序的流程

    1.流程图 从用C语言写源代码,然后经过编译器.连接器到最终可执行程序的流程图大致如下图所示. 2.编译流程 首先,我们先用C语言把源代码写好,然后交给C语言编译器.C语言编译器内部分为前端和后端. ...

  7. Shell等,不等......

    -eq           //等于 -ne           //不等于 -gt            //大于 (greater ) -lt            //小于  (less) -g ...

  8. Maven国内源设置阿里云地址

    Maven国内源设置 目前国外的maven源访问非常慢,作为一个Java开发者,是一件很痛苦的事,而国内的maven源,oschina已经关闭,目前最好的方式,就是使用阿里云的镜像: <mirr ...

  9. MongoSQL 复制数据表报错

    报错内容为: [thread1] SyntaxError: identifier starts immediately after numeric literal @(shell):1:2 解决方案: ...

  10. Python3用sys和time模块实现进度条

    import sys import time def view_bar(num, total): rate = float(num) / float(total) rate_num = int(rat ...