Json 序列化為Dictionary


如下所示的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"
}]
View Code

現將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);
            }
        }
View Code

然后將中文屬性轉換成對應的英文屬性

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;
                    }
                }
            }
View Code

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM