C# 对象转Json

爱⌒轻易说出口 提交于 2020-01-18 05:28:10

这是我第一次发帖,不对的地方还请各位大神多多指教。

不知道有没有朋友碰到这样的问题,对象转Json时候出现中文乱码。

例如形如下面的对象:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Entity
 7 {
 8     public class p2peye_loan_total
 9     {
10         /// <summary>
11         /// 唯一值
12         /// </summary>
13         public string date
14         {
15             get;
16             set;
17         }
18         public List<p2peye_loan> loans
19         {
20             get;
21             set;
22         }
23         public int total
24         {
25             get;
26             set;
27         }
28     }
29 }
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 
  6 using System.Runtime.Serialization;
  7 
  8 namespace Entity
  9 {
 10     /// <summary>
 11     /// 贷款数据
 12     /// </summary>
 13     public class p2peye_loan
 14     {
 15        
 16 
 17         #region 基础属性
 18         private int _id;
 19         /// <summary>
 20         /// 唯一值
 21         /// </summary>
 22         public int id 
 23         {
 24             get { return _id; }
 25             set { _id = value; } 
 26         }
 27         private string _title;
 28         /// <summary>
 29         /// 标题
 30         /// </summary>
 31         public string title
 32         {
 33             get { return _title; }
 34             set { _title = value; }
 35         }
 36 
 37         private double _amount;
 38         /// <summary>
 39         /// 贷款额度(元)
 40         /// </summary>
 41         public double amount
 42         {
 43             get { return _amount; }
 44             set { _amount = value; }
 45         }
 46 
 47         private double _rate;
 48         /// <summary>
 49         /// 年化利率
 50         /// </summary>
 51         public double rate
 52         {
 53             get { return _rate; }
 54             set { _rate = value; }
 55         }
 56 
 57         private int _invest_num;
 58         /// <summary>
 59         /// 投资次数
 60         /// </summary>
 61         public int invest_num
 62         {
 63             get { return _invest_num; }
 64             set { _invest_num = value; }
 65         }
 66 
 67         private string _start_time;
 68         /// <summary>
 69         /// 发标时间
 70         /// </summary>
 71         public string start_time
 72         {
 73             get { return _start_time; }
 74             set { _start_time = value; }
 75         }
 76 
 77         private string _end_time;
 78         /// <summary>
 79         /// 结束时间
 80         /// </summary>
 81         public string end_time
 82         {
 83             get { return _end_time; }
 84             set { _end_time = value; }
 85         }
 86 
 87         private string _url;
 88         /// <summary>
 89         /// url链接    
 90         /// </summary>
 91         public string url
 92         {
 93             get { return _url; }
 94             set { _url = value; }
 95         }
 96         
 97         private string _period;
 98         /// <summary>
 99         /// 还款期限
100         /// </summary>
101         public string period
102         {
103             get { return _period; }
104             set { _period = value; }
105         }
106         private string _period_type = "2";
107         /// <summary>
108         /// 还款期限类型(1天, 2月,)
109         /// </summary>
110         public string period_type
111         {
112             get { return _period_type; }
113             set { _period_type = value; }
114         }
115 
116         private string _pay_way;
117         /// <summary>
118         /// 还款方式(1按月等额本息, 2按月付息,到期还本, 3到期还本息, 4按季付息,到期还本, 5等额本金)
119         /// </summary>
120         public string pay_way
121         {
122             get { return _pay_way; }
123             set { _pay_way = value; }
124         }
125 
126         private string _process;
127         /// <summary>
128         /// 进度
129         /// </summary>
130         public string process
131         {
132             get { return _process; }
133             set { _process = value; }
134         }
135 
136         private string _reward = "0";
137         /// <summary>
138         /// 奖励
139         /// </summary>
140         public string reward
141         {
142             get { return _reward; }
143             set { _reward = value; }
144         }
145         private string _date = DateTime.Now.ToString("yyyy-MM-dd");
146         /// <summary>
147         /// 当前日期
148         /// </summary>
149         public string date
150         {
151             get { return _date; }
152             set { _date = value; }
153         }
154 
155         private string _c_reward = "0";
156         /// <summary>
157         /// 续投奖励
158         /// </summary>
159         public string c_reward
160         {
161             get { return _c_reward; }
162             set { _c_reward = value; }
163         }
164 
165         private string _c_type;
166         /// <summary>
167         /// 标类型(1信用,2担保,3抵押,4质押,5秒标,6净值,7非提现,8重组,9推荐,10快借,11资产贷,12阳光贷,13成长贷,14不可提现,15安全标,0其它标)
168         /// </summary>
169         public string c_type
170         {
171             get { return _c_type; }
172             set { _c_type = value; }
173         }
174         #endregion
175 
176         #region 构造函数
177         ///<summary>
178         ///p2peye_loan构造函数
179         ///</summary>
180         public p2peye_loan()
181         {
182 
183         }
184         #endregion
185     }
186 }

这里既有字符串,又有list。我起初调用"Newtonsoft.Json.dll"(直接网上下载)里面的“JsonMapper.ToJson(对象)”的方法,中文出现乱码。

换用“JsonConvert.SerializeObject(对象)”,时间又被编码成长串的字符串。总是不能两全其美。

肿么办呢?(这里想了好久。。。。)

有时候最直接的方法往往是最有效的。

我直接把对象里面的“DateTime”类型改成“string”类型。

在调用“JsonConvert.SerializeObject(对象)” ,OK 问题解决了。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!