我是Json.Net的新手,很难将我的Json对象反序列化为.Net对象。 我的代码如下:
const string catAndSubCat = @"[
{
""Category"": ""risk factor"",
""SubCategory2"": [
""default"",""Minor risk factor"",""Major risk factor""
]
},
{
""Category"": ""intervention group"",
""SubCategory2"": [
""default"",""Minor risk factor"",""Major risk factor""
]
}
]";
var c = JsonConvert.DeserializeObject<List<ConclusionEntityCategory>>(catAndSubCat);
这是我的班级:
internal class ConclusionEntityCategory
{
internal string Category { get; set; }
internal string SubCategory1 { get; set; }
internal List<string> SubCategory2 { get; set; }
}
c的值是List<ConclusionEntityCategory>
,ConclusionEntityCategory
中包含2个List
个对象。但是,每个ConclusionEntityCategory
对象中的所有属性都为空。
对此问题的任何帮助都将非常感激。
答案 0 :(得分:1)
由于Category,SubCategory1和SubCategory2是内部的,序列化程序无法设置它们。这些必须是公共属性才能被填充。
internal class ConclusionEntityCategory
{
public string Category { get; set; }
public string SubCategory1 { get; set; }
public List<string> SubCategory2 { get; set; }
}
答案 1 :(得分:0)
尝试使用ConclusionEntityCategory
属性标记[JsonProperty]
上的内部属性,或者如果不合适,请将DefaultContractResolver.DefaultMemberSearchFlags
设置为包含非公开标记。