繁体   English   中英

使用序列化器将对象转换为json格式

[英]Object to json convertion format using serializer

我有以下C#模型对象

public class AddressUserFields
{
    public string number { get; set; }
    public string street { get; set; }
    public string apartment { get; set; }
    public string city { get; set; }
    public string state { get; set; }
    public string zipcode { get; set; }
    public string DPV { get; set; }
}

当我尝试使用json序列化方法将其转换为json字符串时,它将像以下那样转换,

JSON字符串: {userFields:[{"number":null,"street":null,"apartment":"","city":null,"state":null,"zipcode":null,"DPV":null}]}

但实际上我寻找的是以下预期的JSON结果:

{userFields:[{"number":null},{"street":null},{"apartment":""},{"city":null},{"state":null},{"zipcode":null},{"DPV":null}]}

因此,任何人都可以让我设计我的c#模型对象并获得预期的json结果的方法。

您只需要在想要Json所在的结构中创建poco对象。

如果要这种结构:

{userFields:
  [
   { "number":null,
     "street":null,
     "apartment":"",
     "city":null,
     "state":nul‌​l,
     "zipcode":null,
     "DPV":null
   }
  ]
 }

这是一个具有一个属性userFields的对象,该属性的类型为AddressUserFields[]

因此,只需添加另一个类

public class SomeContainer
{
     public AddressUserFields[] userFields {get;set;}
}

并序列化那个

如果您确实想要一组具有不同属性的不同对象,例如您发布的内容:

...[{"number":null},{"street":null},{"apartment":""},...]

您可以使用Dictionary<TKey,TValue>的数组,如下所示:

public class Fields
{
    public Dictionary<string, string>[] userFields { get; set; }
}

并像这样使用它?

var fields = new Fields()
{
    userFields = new[]{
        new Dictionary<string,string>(){{"number", null}},
        new Dictionary<string,string>(){{"street", null}}
    }
};

var json = JsonConvert.SerializeObject(fields);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM