微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用牛顿软从类的复杂类型属性中仅序列化特定值

如何解决如何使用牛顿软从类的复杂类型属性中仅序列化特定值

我有一个具有多个属性的类,其中一些属性是复杂类型,它本身具有多个其他属性,我不想在所有这些不需要的属性上使用 JsonIgnore 注释,寻找获得只有一个属性可以从某个复杂类型序列化。

例如我有 3 个班级

class Organization
{
    public Int32 ID {get; set;}
    public string Name {get; set;}
    public Geography Location {get; set;}
    public Employee AreaHead {get; set;}
}

class Geography 
{
    public Int32 GeoID {get; set;}
    public string Country {get; set;}
    public string City {get; set;}
    public string State {get; set;}
}   

class Employee 
{
    public Int32 EmpID {get; set;}
    public string Name {get; set;}
    public DateTime dob {get; set;}
    public string Gender {get; set;}
}

在这里我想序列化 Organization 类对象,它应该只包括来自 Geography 的“Country”和来自 Employee 的“EmpID”,用于相应的 Location 和 AreaHead 属性,我期望的 json 字符串输出如下使用 { {1}} 方法来自 NewtonSoft 库。

JsonConvert.SerializeObject

这可以使用 DefaultContractResolver 吗?

ContractResolver

{
   "ID":1,"Name":"Sales","Location":"India","AreaHead":5464
}

解决方法

您可以从给定的 @tf.function def any_function(a): return a.numpy().tolist() b = tf.constant(2) any_function(b) 类创建一个 anonymous object 仅具有必需属性,并使用 Organization 函数获取所需的 JSON 字符串

  1. 从现有的组织实例创建一个匿名类型。

    JsonConvert.SerializeObject()
  2. 现在 Serialize this object 使用 NewtonSoft.Json 库,

    var input = new {
     ID = organization.ID,Name =  organization.Name,Location = organization.Location.Country,AreaHead = organization.AreaHead.EmpID 
    
    }
    

使用 JObject.FromObject() 方法,

using Newtonsoft.Json;
...
var result = JsonConvert.SerializeObject(input,Formatting.Indented);
Console.WriteLine(result);

在线试用:.NET FIDDLE

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。