【发布时间】:2017-09-07 07:27:33
【问题描述】:
我在编写类以反序列化 JSON 文件时遇到问题。
我的课程如下所示:
public class Button1
{
public string Caption = "";
public Dictionary<string, Button1> Buttons;
}
public class ButtonsMenu
{
public Dictionary<string, Button1> Buttons;
}
我正在尝试反序列化这个 JSON:
{
"Buttons": {
"Activity": {
"btn1": {
"Caption": "Promeni sostojba"
},
"btn2": {
"Caption": "Izvrsi nesto drugo"
}
},
"Navigate": {
"btnA": {
"Caption": "Pojdi na druga forma"
},
"btnB": {
"Caption": "Otvori nesto razlicno"
}
},
"Print": {
"btnX1": {
"Caption": "Pecati nalog"
},
"btnX2": {
"Caption": "Pecati report"
}
}
}
}
像这样使用 Json.Net:
var buttonDef = JsonConvert.DeserializeObject<ESB.Shared.DTO.ButtonsMenu>(formDefJson);
我的问题是当我尝试反序列化我的 JSON 时,我有 Activity、Navigate 和 Print 这三个项目,但 Captions 字段到处都是空的。
你能告诉我我在课堂上缺少什么吗?
【问题讨论】:
-
为什么默认设置为空字符串?
public string Caption = "" -
如果它没有值为空字符串且不为空
-
你这里有两个级别,Activity是另一个字典,试着把ButtonsMenu中的Buttons变成这个:
public Dictionary<string, Dictionary<string, Button1>> Buttons;。
标签: c# json serialization json.net