在 WCF json 序列化中包含类名
本文关键字:包含类 序列化 WCF json | 更新日期: 2023-09-27 18:32:29
这一定是微不足道的,但我似乎无法完成它。给定以下数据协定类:
public class SampleItem
{
public int Id { get; set; }
public string StringValue { get; set; }
}
当由我的 WCF 服务反序列化为 JSON 时,提供以下输出:
[{"Id":1,"StringValue":"Hello"}]
有没有办法也包含类名?即:
"SampleItem": [{"Id":1,"StringValue":"Hello"}]
你可以尝试这样的事情:
private dynamic AddClassName(SampleItem item)
{
return new {SampleItem = item};
}
和
var item = new SampleItem {Id = 1, StringValue = "Hello"};
dynamic itemClassName = AppendClassName(item);
string json = new JavaScriptSerializer().Serialize(itemClassName);
Debug.WriteLine(json);
编辑 - 这适用于所有类型:
private static string GetJsonWrapper<T>(T item)
{
string typeName = typeof(T).Name;
string jsonOriginal = new JavaScriptSerializer().Serialize(item);
return string.Format("{{'"{0}'":{1}}}", typeName, jsonOriginal);
}