2012-07-18 82 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」,但這應該足夠了。

如果這不是您想要的,您可以隨時使用字典<字符串,對象>,其值爲字符串或更多字典。

相關問題