json 格式化输出
效果
格式化前的字符串:
{id=11,name="xxj",age=111,time=DateTime.Now};
格式化后的字符串:
{
id=11,
name="xxj",
age=111,
time='2010-1-1 1:1:1'
};
需要1:Newtonsoft.Json.dll 组件
需要2:自定义扩展方法
/// <summary>
/// 生成Json格式
/// key=字段名,value=字段值
/// </summary>
/// <typeparam name="T">待序列化的对象</typeparam>
/// <returns></returns>
/// <remarks>创建人员(日期):★xxj★(111026 19:08)</remarks>
public static string ToJsonSerialize<T>(this T obj) //where T : class
{
if (obj.IsNullOrDbNull())
return string.Empty;
if (obj is DataTable)
return DataTableToJson(obj as DataTable);
JavaScriptSerializer serialize = new JavaScriptSerializer();
//针对日期序列化时区的转化
var json = Regex.Replace(serialize.Serialize(obj), @"\\/Date\((-?\d+)\)\\/", match =>
{
var dt = new DateTime(1970, 1, 1);
dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value));
dt = dt.ToLocalTime();
return dt.ToString("yyyy-MM-dd HH:mm:ss");
});
return json;
}
格式化json代码
/// <summary>
/// 测试json字符串格式化
/// </summary>
[TestMethod]
public void TestJsonFormat()
{
//格式化json字符串
var data = new
{
id=11,
name="xxj",
age=111,
time=DateTime.Now
};
var json = data.ToJsonSerialize();
//Newtonsoft.Json.dll, v4.5.0.0
JsonSerializer serializer = new JsonSerializer();
TextReader tr = new StringReader(json);
JsonTextReader jtr = new JsonTextReader(tr);
object obj = serializer.Deserialize(jtr);
if (obj != null)
{
StringWriter textWriter = new StringWriter();
JsonTextWriter jsonWriter = new JsonTextWriter(textWriter)
{
Formatting = Formatting.Indented,
Indentation = 4,
IndentChar = ' '
};
serializer.Serialize(jsonWriter, obj);
var jsonF = textWriter.ToString();
}
Assert.IsTrue(true);
}
还没有评论,来说两句吧...