我正在尝试将json对象数组转换为C#列表,但我无法使其工作。目前,我已经完成了这个课程:
public class FineModel
{
public String officer { get; internal set; }
public String target { get; internal set; }
public int amount { get; internal set; }
public String reason { get; internal set; }
public String date { get; internal set; }
public FineModel() { }
}
现在,我有这个JSON,我想要反序列化,这似乎是正确形成的:
[
{
"officer":"Alessia Smith",
"target":"Scott Turner",
"amount":1800,
"reason":"test",
"date":"9/4/2017 3:32:04 AM"
}
]
应该发挥魔力的C#系列是:
List<FineModel> removedFines = JsonConvert.DeserializeObject<List<FineModel>>(json);
它返回一个对象,但是当我尝试打印它的值时,它为amount属性返回0,为字符串返回空,就像我这样做。这可能有什么问题?
提前致谢!
答案 0 :(得分:2)
从setter中删除内部,
public class RootObject
{
public string officer { get; set; }
public string target { get; set; }
public int amount { get; set; }
public string reason { get; set; }
public string date { get; set; }
}
内部setter无法工作,因为从另一个dll调用
答案 1 :(得分:1)
只是为了使答案更加完整,请从设置器中删除内部或将 JsonProperty 属性添加到模型中。
public class FineModel
{
[JsonProperty]
public String officer { get; internal set; }
[JsonProperty]
public String target { get; internal set; }
[JsonProperty]
public int amount { get; internal set; }
[JsonProperty]
public String reason { get; internal set; }
[JsonProperty]
public String date { get; internal set; }
public FineModel() { }
}