C# list 转json 格式问题

lxming188 2012-09-17 03:24:42
C# list 转json 使用了一下方法
public static string Obj2Json<T>(T data)
{
try
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(data.GetType());
using (MemoryStream ms = new MemoryStream())
{
serializer.WriteObject(ms, data);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
catch
{
return null;
}
}
结果转换出来的json {"Address":null,"City":null,"CompanyAbbreviate":null,"CompanyName":"Kingnob","ConCountry":"","ConProduct":"","Contact":"Fifi","Country":"中国","CreateTime":"\/Date(1346058617643+0800)\/","Credits":80,"Email":null,"Fax":null,"Guid":"5310880e-c87b-4f53-b634-00018a1d059d",

怎样将null 变成“”,还有数字的变成字符“12”、时间变成“年月日”这样 。。有没有用过上面的方法进行过转化的???帮帮忙了。
...全文
865 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxiuge1999 2014-05-20
  • 打赏
  • 举报
回复
引用 2 楼 mngzilin 的回复:
帮助文档里面一般有关于Datetime这种特殊类型的转换方法,不过我一般把时间保存为string,在使用的时候datetime.parse()进行转换 -------------------------------- 如果你使用的是Newtonsoft.Json.dll,关于时间的转换如下:using Newtonsoft.Json和Newtonsoft.Json.Converters
        class obj
     
            IsoDateTimeConverter dc = new IsoDateTimeConverter();
            dc.DateTimeFormat = "yyyy年MM月dd日 HH时mm分ss秒";
            JsonSerializerSettings jss = new JsonSerializerSettings();
            jss.
            string isoJson = JsonConvert.SerializeObject(oo, dc);

            Console.WriteLine(isoJson)
输出结果:{"dt":"2012年09月17日 20时52分37秒"}
用了这个,对我的正好帮助
javamy006 2013-09-07
  • 打赏
  • 举报
回复
呵呵,有机会再来看看
eHuaTian 2012-09-17
  • 打赏
  • 举报
回复
上面两个方法均可行
机器人 2012-09-17
  • 打赏
  • 举报
回复
方法1. 要么在序列化前,你自己遍历list转换一下
方法2. 改用 Json.Net 加入一些自定义的Converter
mngzilin 2012-09-17
  • 打赏
  • 举报
回复
帮助文档里面一般有关于Datetime这种特殊类型的转换方法,不过我一般把时间保存为string,在使用的时候datetime.parse()进行转换
--------------------------------
如果你使用的是Newtonsoft.Json.dll,关于时间的转换如下:using Newtonsoft.Json和Newtonsoft.Json.Converters
        class obj
{
public DateTime dt = DateTime.Now;
public string str = null;
}
obj oo=new obj();
IsoDateTimeConverter dc = new IsoDateTimeConverter();
dc.DateTimeFormat = "yyyy年MM月dd日 HH时mm分ss秒";//格式化时间
JsonSerializerSettings jss = new JsonSerializerSettings();
jss.NullValueHandling = NullValueHandling.Ignore;//忽略null值的属性
jss.Converters.Add(dc);
string isoJson = JsonConvert.SerializeObject(oo,Formatting.None,jss);

Console.WriteLine(isoJson);
obj oo=new obj();
IsoDateTimeConverter dc = new IsoDateTimeConverter();
dc.DateTimeFormat = "yyyy年MM月dd日 HH时mm分ss秒";
JsonSerializerSettings jss = new JsonSerializerSettings();
jss.
string isoJson = JsonConvert.SerializeObject(oo, dc);

Console.WriteLine(isoJson)


输出结果:{"dt":"2012年09月17日 20时52分37秒"}
lxming188 2012-09-17
  • 打赏
  • 举报
回复
没人吗。。。。

109,897

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧