我是json的新手,所以这可能是重复的。我事先表示歉意,但我不知道该如何搜索。
我有以下要序列化的json文件:
{
"filename":"myFileName.txt",
"sourceProperties":{
"properties":[
{
"key": "myKey0",
"value": "myValue0"
},
{
"key": "myKey1",
"value": "myValue1"
}
]
},
}
我声明了两个类似于该对象的类:
class Document
{
[JsonProperty(PropertyName = "filename")]
public string Filename { get; set; }
[JsonProperty(PropertyName = "sourceProperties")]
public List<DocProperty> Properties { get; set; }
}
class DocProperty
{
[JsonProperty(PropertyName = "key")]
public string Key { get; set; }
[JsonProperty(PropertyName = "value")]
public string Value { get; set; }
}
但是,当然不会显示json文件中必需的列表标签“ properties”。
声明我的对象的正确方法是什么?我得到“ sourceProperties”标签,然后是“ properties”标签和列表?
答案 0 :(得分:1)
类似这样的东西:
class Document
{
[JsonProperty(PropertyName = "filename")]
public string Filename { get; set; }
[JsonProperty(PropertyName = "sourceProperties")]
public SourceProperties Source { get; set; }
}
class SourceProperties
{
[JsonProperty(PropertyName = "properties")]
public Dictionary<string, string> Properties { get; set; }
}
我故意将List<DocProperty>
替换为 Dictionary 类,因为它的格式具有自描述性,并且与您的 JSON 文件的结构匹配,但是您可以使用{{ 1}},如果您真的想要。