【发布时间】:2020-04-28 03:17:12
【问题描述】:
我正在尝试找到一种将对象序列化为以下格式的json字符串的方法,以便我可以满足项目要求
{
"id": 123456,
"los": {
"2019-05-13": [
{
"currency": "EUR",
"guests": 2,
"price": [
100,
200
]
},
{
"currency": "EUR",
"guests": 3,
"price": [
150,
250
]
}
],
"2019-05-14": {
"currency": "EUR",
"guests": 2,
"price": [
300
]
}
},
}
我创建了这些模型类:
public class Rootobject
{
public Los los { get; set; }
public int Id { get; set; }
}
public class Los
{
public Item[] items{ get; set; }
}
public class Item
{
public DateTime date {get;set;}
public string currency { get; set; }
public int guests { get; set; }
public int[] price { get; set; }
}
在序列化过程中可能会以某种方式更改元素的名称,因此 Item 被序列化为“2019-05-13”、“2019-05-14”等?
【问题讨论】:
-
与序列化它的方式相同:将项目存储在字典中,其中日期字符串是键。如果您不想要这个,您可以编写一个自定义格式化程序来执行此操作,因此在不使用适当的数据结构方面确实有很长的路要走。
-
有道理,我试试
-
专业提示:如果属性名称是一个值,那么它就是一个字典。为了强制键唯一性,字典被序列化为一个对象,其中键是属性名称,值是属性值。
-
还提供您希望看到的示例输出
-
你可以使用
Json.Linq,就像在这个线程中Getting the name / key of a JToken with JSON.net
标签: c# serialization jsonconvert