[英]Implement custom Json serializer for properties from thrid party library class (newtonsoft)
我正在使用newtonsoft JSON.NET庫序列化無法修改的第三方庫的對象。 盡管該對象的某些屬性具有值,但它們會序列化為空字符串。 因此,我只想調用ToString來獲取和序列化某些類型屬性的值。
namespace ThirdParty.Lib
{
public class Info
{
// When newtonsoft serialize a property of this type (CDataField)
// a get an empty string as value.
public CDataField Name { get; set; }
public CDataField Email { get; set; }
public string IdNNumber {get; set;}
}
}
var info = new ThirdParty.Lib.Info
{
IdNumber = "001254810",
Name = "John Doe",
Email = "johndoe@gmail.com"
};
var jsonstring = Newtonsoft.Json.JsonConvert.SerializeObject(transactionModel)
//json string output
{ IdNumber: "001254810", Name: "", Email: "" }
最簡單的方法是實現“克隆”類並對其進行序列化。 喜歡:
namespace MyNameSpace
{
public class Info
{
// When newtonsoft serialize a property of this type (CDataField)
// a get an empty string as value.
public string Name { get; set; }
public string Email { get; set; }
public string IdNNumber {get; set;}
Info(ThirdiParty.Lib.Info info)
{
Name = info.Name.ToString();
Email = info.Email.ToString();
IdNumber = info.IdNumber;
}
}
}
var myinfo = new MyNameSpace.Info(
new ThirdiParty.Lib.Info()
{
IdNumber = "001254810",
Name = "John Doe",
Email = "johndoe@gmail.com"
}
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.