.Net关于前端使用Newtonsoft.Json序列化的问题
实现目标:实现一个以Json格式传输List<T>类型数据的WebApi接口,并在终端实现正确转化与匹配
接口部分:
将List<T>类型数据转换为Json类型字符串:
public static string ToJson(this object obj)
{
var timeConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" };
return JsonConvert.SerializeObject(obj, timeConverter);
}
reportList.ToJson();//reportList为List<T>
终端部分:
根据URL获取接口数据,存放于字符串jsonString中:
string jsonString = (RESTHelper.GetRestReturnJsonStr(url));
注意:获取的字符串格式与SerializeObject()方法转化的Json字符串是有区别的:
SerializeObject()方法转换得到的字符串: str1 = “[{"ReportId":1789,"ReportTypeId":1,...}]”
终端获取到的字符串: str2 = “ "[{\"ReportId\":1789,\"ReportTypeId\":1,...}]"”
可以看到,相比于str1,字符串str2在首尾处各多出一个双引号,且属性字段前后各有一个反斜杠’\‘(因为在微软中,“\“”是作为双引号用的),
所以字符串jsonString需要先处理后才能夹下反序列化:
string Json=jsonString.Replace("\\", "").TrimStart('\"').TrimEnd('\"');
JsonConvert.DeserializeObject<List<T>>(Json);
♦ §这个世界的温柔来自于自身的强大!§ ♦

浙公网安备 33010602011771号