0

使用 .net Web 服务生成下面的 json 的最佳方法是什么?我打算通过前端的 jquery 来调用它。

我没有看到我是否必须手动将它拼凑在一起,或者 C# 中是否有一个对象结构,我可以使用它在返回时等同于这个。

{'Option 1': {'Suboption':2},'Option 2': {'Suboption 2': {'Subsub 1':5, 'Subsub 2':6}}}

现在我的数据格式如下

Id  |   Text    |  ParentId
1     Option1       null
2     SubOption      1
3     Option2       null
4     SubOption2     3
5     SubSub1        4
6     SubSub2        4

但是如果可以更轻松地生成 json,我可以更改数据结构。

编辑


最终解决方案是使用字符串生成器循环以形成 JSON。

谢谢!

4

2 回答 2

0

您需要一个递归数据结构来支持嵌套。

public class Item
{
    public int ID { get; set; }
    public string Text { get; set; }
    public Item SubItem { get; set; }
}

var myObject = new Item
{
    Id = 1, 
    Text = "Some Text",
    SubItem = new Item { Id = 2, Text = "SubItem" }
}

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
string json = serializer.Serialize(myObject);
于 2012-07-18T15:59:56.183 回答
0

看起来您正在尝试序列化树状结构,因此您需要构建某种树。你也许可以使用这样的东西:

class Node
{
  public String Text {get;set;}
  public Node[] Children {get;set;}
  public int Id {get;set;} // if you still need this
}

虽然它有点颠倒了事情(链接到孩子而不是父母)。

此外,您无法使用此技术获得准确的输出,因为每个级别的键都不同。使用像我在这里的类意味着 JSON 键将始终是“Text”、“Children”和“Id”,但这应该足够了。

如果这不是您想要的,您始终可以使用 Dictionary<String, Object>,其值可以是字符串或更多字典。

于 2012-07-18T16:22:08.730 回答