2012-07-18 88 views
0

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

我没有看到如果我必须用手将它拼在一起,或者如果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。

EDIT


最终溶液是循环与字符串生成器,以形成了JSON。

谢谢!

+0

http://blogs.microsoft.co.il/blogs/pini_dayan/archive/2009/03/12/convert-objects-to-json-in-c-using-javascriptserializer.aspx – 2012-07-18 15:59:04

回答

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

感谢您的超级快速回应,我不认为这会产生我在找的东西。 假设我制作了一系列父母,它会给我一些与您链接的例子相似的东西。 我正在查找的JSON没有在文本字段前面加上变量名,并且数据嵌套在一起。 – 2012-07-18 16:09:21

+0

我真的不明白你的JSON例子。它与您的源数据示例没有太多相似之处,我不明白为什么嵌套在那里。我给出的例子是一个简单的例子,但你应该能够根据你的需要来塑造它。 – 2012-07-18 16:10:23

+0

感谢您的帮助。 我已更新问题,以便表格示例具有与JSON匹配的数据。 – 2012-07-18 16:18:29

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

如果这不是您想要的,您可以随时使用字典<字符串,对象>,其值为字符串或更多字典。

相关问题