我有以下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结果。
答案 0 :(得分:2)
您只需要在希望Json进入的结构中创建poco对象。
如果你想要这个结构:
{userFields:
[
{ "number":null,
"street":null,
"apartment":"",
"city":null,
"state":null,
"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);