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