我正在使用NewtonJson序列化对象。我想序列化一个对象,它有两个属性,一个是普通字符串,第二个属性是一些项的字典。
我期待着这样的结果:
"Company": {
"Id": "1393",
"emp1": {
"email": "test1@example.com",
"firstName": "test1",
"lastName": "test1",
"title": "Mr"
},
"emp2": {
"email": "test2@example.com",
"firstName": "test2",
"lastName": "test2",
"title": "Ms"
}
}
但我得到的输出如下:
"Company": {
"Id": "1393",
"employees": {
"emp1": {
"email": "test1@example.com",
"firstName": "test1",
"lastName": "test1",
"title": "Mr"
},
"emp2": {
"email": "test2@example.com",
"firstName": "test2",
"lastName": "test2",
"title": "Ms"
}
}
}
下面是我的代码:
public string GetCompany(Dictionary<string, Employee> employees)
{
var company = JsonConvert.SerializeObject(new
{
Id = "1393",
employees
});
return company;
}
4条答案
按热度按时间db2dz4w81#
通过创建匿名对象,您可以添加另一个名为
employees
的属性。为什么不直接把
Id
添加到字典中呢?例如:
这将生成
employees
的副本,并在序列化之前添加新密钥"Id"
。insrf1ej2#
下面是一个完整的工作演示,你可以跟随:
r3i60tvu3#
创建一个Poco(Plain Old C#对象)。确保添加
[JsonExtensionData]
属性。然后将其序列化
nue99wik4#
不幸的是,我们还不清楚你的目标是什么,如果你只是需要一个json字符串,你可以试试下面的代码
但是你可能需要更大的东西,所以创建一个JObject以便将它添加到数据的另一部分可能是有意义的,最后你可以通过调用ToString()函数来序列化它