我如何忽略我在jsonproperty属性中使用的属性名,前提是它只有一次



我的问题是我反序列化传入的数据,并使用json属性将其传输到这个类。但我不想使用jsonproperty中序列化时使用的property name属性

示例类

public class DocumentDetail
{
[JsonProperty("KAREKOD")]
public string qrCode { get; set; }
[JsonProperty("GTIN")]
public string gtinNumber { get; set; }
[JsonProperty("LOTNUMBER")]
public string lotNumber { get; set; }
}

序列化示例

{
DocumentDetail docDetail=new DocumentDetail(){qrCode="123456adsfg789",gtinNumber ="123asdf548654",lotNumber ="1231231sdfg23"};
var obj=JsonConvert.SerializeObject(body);
}

例子结果

{
"qrCode" : "123456adsfg789",
"gtinNumber" : "123asdf548654",
"lotNumber" : "1231231sdfg23"
}

您可以添加一个构造函数类

public class DocumentDetail
{
public string qrCode { get; set; }
public string gtinNumber { get; set; }
[JsonProperty("lotNumber")] // optional, you can assign any name for serialization
public string lotNumber { get; set; }

[Newtonsoft.Json.JsonConstructor]
public  DocumentDetail( string KAREKOD,string GTIN, string LOTNUMBER)
{
qrCode=KAREKOD;
gtinNumber=GTIN;
lotNumber=LOTNUMBER;
}
public DocumentDetail() {}
}

,你不需要在构造函数中包括所有的属性,只包括序列化和反序列化需要不同名称的属性。

这对我有用

public class Foo
{
private string bar;
public string IncomingBar { set { bar = value; } }
public string OutgoingBar { get { return bar; } }
}

相关内容

  • 没有找到相关文章

最新更新