将对象转换为指定格式-cond的json

时间:2014-08-07 12:52:55

标签: json c#-4.0 json.net

这个问题是this ...的延续,而不是改变它,我在这里问一个新问题。 我需要的json格式是

{
    "nodes": {
        "1": {
            "2": {
                "attriba": "a2",
                "label": "2",
                "attribc": false
            },
            "3": {
                "attriba": "a3",
                "label": "3",
                "attribc": false
            }
        },
        "6": {
            "4": {
                "attriba": "none",
                "label": "4",
                "attribc": false
            },
            "5": {
                "attriba": "none",
                "label": "5",
                "attribc": false
            }
        }
    }
}

现在通常我会创建类并用数据填充它们并调用“Newtonsoft.Json.JsonConvert.SerializeObject”来获取所需的json字符串。

但在这种情况下格式是这样的,我无法弄清楚类结构..

根据我上一个问题的顶级课程将如下所示..

public class Response
    {
        [JsonProperty("nodes")]
        public Dictionary<string, Node> Nodes { get; set; }

     }

底层......

public class Nodedata
    {

        [JsonProperty("attriba")]
        public string Attriba { get; set; }

        [JsonProperty("attribb")]
        public string Attribb { get; set; }

        [JsonProperty("label")]
        public string Label { get; set; }

        [JsonProperty("attribc")]
        public bool Attribc { get; set; }
    }

但是,我如何管理节点类(值“1”和“6”),它再次没有键值并且有一个Nodedata对象列表..

真诚地感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

节点1和6的类将是Dictionary<string, Object>

类型

你的2,3,4和5课程将按照你的设计。

你应该得到像

这样的东西
BottomNode node1 = new BottomNode("a2", 2, false);
BottomNode node2 = new BottomNode("a3", 3, false);
BottomNode node3 = new BottomNode("none", 4, false);
BottomNode node4 = new BottomNode("none", 5, false);

Dictionary<string, Object> dic1 = new Dictionary<string, Object>();
Dictionary<string, Object> dic6 = new Dictionary<string, Object>();

dic1.Add("2", node1);
dic1.Add("3", node2);
dic6.Add("4", node3);
dic6.Add("5", node4);

Dictionary<string, Object> nodes = new Dictionary<string, Object>();

nodes.Add("1", dic1);
nodes.Add("6", dic6);