C# 使用.NETWeb服务生成下面的json的最佳方法是什么?

C# 使用.NETWeb服务生成下面的json的最佳方法是什么?,c#,jquery,asp.net,json,web-services,C#,Jquery,Asp.net,Json,Web Services,使用.NETWeb服务生成下面的json的最佳方法是什么?我计划在前端调用jquery 我不知道我是否必须手工将其拼合在一起,或者在C#中是否有一个对象结构,我可以使用它,当返回时,它将等同于此 {'Option 1': {'Suboption':2},'Option 2': {'Suboption 2': {'Subsub 1':5, 'Subsub 2':6}}} 现在我把数据格式化成这样 Id | Text | ParentId 1 Option1 nu

使用.NETWeb服务生成下面的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


谢谢

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

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);

看起来您正在尝试序列化一个类似树的结构,因此需要构建某种类型的树。你可以用这样的方法:

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”,但这应该足够了


如果这不是你想要的,你可以使用字典,它的值可以是字符串,也可以是更多的字典。

谢谢你的快速响应,我不认为这会产生我想要的结果。假设我做了一个父母数组,它会给我一些类似于你链接到的例子中的东西。我要找的JSON没有变量名作为文本字段的前缀,而且数据不是并排嵌套的。我不太理解你的JSON示例。它与您的源数据示例不太相似,我也不明白为什么会有嵌套。我举的例子很简单,但你应该能够根据自己的需要来塑造它。谢谢你的帮助。我已经更新了这个问题,以便表示例中的数据与JSON匹配。啊,我明白了。您需要一个递归数据结构。我修改了我的答案。谢谢,使用递归结构,我得到了{“Id”:1,“Text”:“Some Text”,“SubItem”:{“Id”:2,“Text”:“SubItem”,“SubItem”:“null}}}下面的JSON。我想得到的是{“Some Text”:{“SubItem”:2}听起来我只是需要循环我的对象并用stringBuilder构建JSON吗?