如何将映射器添加到 JavaScriptSerializer()。序列化以获取自定义(缩小)json而不使用[JsonProperty(" ")]?



我想自定义JavaScriptSerializer((。通过添加映射进行序列化。明确:

认为我们有类:(因为它来自其他库,我不能修改这个类,所以我不能使用[JsonProperty("(](

class Address
{
public string Number { get; set; }
public string Street { get; set; }
public string City { get; set; }
public string Country { get; set; }
}

输出应该是:

{
"NMB" : "No 25",
"STR" : "Main Street",
"CTY" : "Matale",
"CNT" : "Sri Lanka"
}

如何在JavaScriptSerializer().Serialize(Address_Object);期间实现映射?

IMHO,最简单的方法是创建一个util进行序列化,您可以使用net序列化程序或Newtonsoft.Json one

var addr = new Address {....}
string json = SerializeAddress(addr);
public string SerializeAddress(Address address)
{
var addr = new
{
NMB = address.Number,
STR = address.Street,
CTY = address.City,
CNT = address.Country
};
return Newtonsoft.Json.JsonConvert.SerializeObject(addr, Newtonsoft.Json.Formatting.Indented);
//Or
return System.Text.Json.JsonSerializer.Serialize(addr);
}

最新更新