C# 类如何生成 嵌套的三层JSON格式数据

zzj5417806 2013-06-04 02:17:26
我现在要做一个wcf服务接口,该服务接口返回的数据格式是JSON,JSON的格式如下:

{
"Author1": [
{
"Special1": [
{
"File1": "url1",
"File2": "url2",
"File3": "url3"
}
],
"Special2": [
{
"File4": "url4",
"File5": "url5",
"File6": "url6"
}
],
"Special3": [
{
"File7": "url7",
"File8": "url8",
"File9": "url9"
}
]
}
],
"Author2": [
{
"Special4": [
{
"File10": "url10",
"File11": "url11",
"File12": "url12"
}
],
"Special5": [
{
"File13": "url13",
"File14": "url14",
"File15": "url15"
}
],
"Special6": [
{
"File16": "url16",
"File17": "url17",
"File18": "url18"
}
]
}
]
}


三层结构,作者->专辑->文件

我在接口中定义了这么个接口:

[ServiceContract]
public interface ISvcFoJing
{
[OperationContract]
[WebGet(UriTemplate = "/RecommendAudios/", ResponseFormat = WebMessageFormat.Json)]
FoJingInfo GetRecommendAudios();
}


[DataContract]
public class FoJingInfo //这个是根节点
{
[DataMember(Order = 0)]
public List<AudioAuthor> audioAuthorList { get; set; }
}

[DataContract]
public class AudioAuthor
{
[DataMember(Order = 0)]
public List<Special> specialList { get; set; }
}


[DataContract]
public class Special
{
[DataMember(Order = 0)]
public List<AudioFile> audioFileList { get; set; }
}

[DataContract]
public class AudioFile
{
[DataMember(Order = 0)]
public string audioTitle { get; set; }
[DataMember(Order = 1)]
public string audioFile { get; set; }
}


实现接口的代码我就先不贴了,最后返回的json数据格式是这样的:

{
"audioAuthorList": [
{
"specialList": [
{
"audioFileList": [
{
"audioTitle": "心经01",
"audioFile": "192.168.2.196/Audios/心经01.amr"
},
{
"audioTitle": "心经02",
"audioFile": "192.168.2.196/Audios/心经02.amr"
}
]
},
{
"audioFileList": [
{
"audioTitle": "01入中论",
"audioFile": "192.168.2.196/Audios/01入中论.amr"
},
{
"audioTitle": "02入中论",
"audioFile": "192.168.2.196/Audios/02入中论.amr"
},
{
"audioTitle": "03入中论",
"audioFile": "192.168.2.196/Audios/03入中论.amr"
}
]
},
{
"audioFileList": [
{
"audioTitle": "01止的修持",
"audioFile": "192.168.2.196/Audios/01止的修持.amr"
},
{
"audioTitle": "02止的修持",
"audioFile": "192.168.2.196/Audios/02止的修持.amr"
}
]
}
]
}
]
}


json中的"audioAuthorList" 是我定义的类FoJingInfo中的属性,我希望这边是作者名字(应该是键值对中的值吧),而不要是这个属性名,总得json格式是我第一个贴的那个格式
不知道我表述的清楚没? 大家帮我看看吧,谢谢了!
...全文
858 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonwrite 2013-06-04
  • 打赏
  • 举报
回复
引用 3 楼 zzj5417806 的回复:
[quote=引用 2 楼 ducker3590 的回复:] NewtonSoft.Json 使用详情请百度
一定要使用第三方的东西吗? 我觉得我这个功能应该很简单的啊[/quote] 用NewtonSoft.Json 把 然后定义几种 试试
zzj5417806 2013-06-04
  • 打赏
  • 举报
回复
引用 2 楼 ducker3590 的回复:
NewtonSoft.Json 使用详情请百度
一定要使用第三方的东西吗? 我觉得我这个功能应该很简单的啊
csdnFUCKINGSUCKS 2013-06-04
  • 打赏
  • 举报
回复
NewtonSoft.Json 使用详情请百度
zzj5417806 2013-06-04
  • 打赏
  • 举报
回复
100分都没人要么。。。 大家帮帮忙哦
使用的技术:Ext2.2|vs2008|C#|Sql2005|三层|多层 实现了整个系统框架的搭建,非常适合于做后台系统,管理系统,做网站也很不错,目前采用这样的技术就全国来 说,还是很少,但将来的趋势已定很好,对人的视觉有很大的冲击力,首先介绍下该整体架构的实现吧: 1,整个系统实现了4个主要功能,左边,上边,中间,下面四个区域,具体是左边的树展示,这是数据,效果非常漂亮,然后选择这棵树的节点 ,就可以在中间区域显示该型下的所有信息集合。 2,上面的区域显示了所有型的最上级型,通过选择某个型,可以动态刷新左边的树,因为左边的树在默认情况下会绑定所有的型集合,但是 通过在最上面选择某个最上级型就可以动态刷新左边的树,显示某个最上级型下的 所有型,对于型较多的时候会非常有用。 3,在系统的右上角实现了动态跟换7种皮肤的下拉列表框,用cookie保存个人浏览信息,非常的酷 4,在中间区域实现了grid 并且实现了分页,根据型的不同动态显示,因为这个grid是嵌套在tabpanel里面的,这样就可以显示无限个grid,当查 看某个grid的时候,无须在请求服务器,就可以查看,另外tabpanel可以动态的滚动,方便查看每个grid,同时在每个grid上面都实现了一个删除当 前grid的按钮,方便清除grid。此外,为了方便大家在打开较多grid的情况下一个一个删除grid较为麻烦的问题,所有在这里实现了在每个grid上面 都可以右键选择是删除当前grid还是删除其他的grid,但不会删除首页,也不要实现在首页上右键的功能,这个很重要哦。 5,在系统的最下面实现了一个显示公告的按钮和一个时钟,对于一个系统来说也是非常重要的。 下面叙述下这里的一些技术的实现和难点 1,主要是Ext2.2|vs2008|C#|Sql2005|三层|多层,务必是数据库sql2005才可以,因为里面的分页sql语句采用了sql2000不支持的语法。 2,系统里面主要了一些ext的组件:grid,tab,combox,button,toolbutton等,基本上所有的ext组件在这里都有涉及,还有就是后台返回的所有 数据都是采用json格式,这也是实现ajax传递的首选技术了。 3,这是将多数ext高级组件综合应用的典型示例, 4,系统里面包含了 7种皮肤文件 5,系统里面包含了ext2.2框架
2008最新框架源码,简单清晰明了, 如有解压密码,密码为:xkzzz.com 友情提示: 如果遇到MD5加密文件,而又不知道的密码的, 请在数据库中换上这组加密的数据吧 469e80d32c0559f8 那么密码就是admin888 使用的技术:Ext2.2|vs2008|C#|Sql2005|三层|多层 本篇博客是我的一篇较早的demo,实现了整个系统框架的搭建,非常适合于做后台系统,管理系统,做网站也很不错,目前采用这样的技术就全国来说,还是很少,但将来的趋势已定很好,对人的视觉有很大的冲击力,首先介绍下该整体架构的实现吧: 1,整个系统实现了4个主要功能,左边,上边,中间,下面四个区域,具体是左边的树展示,这是数据,效果非常漂亮,然后选择这棵树的节点,就可以在中间区域显示该型下的所有信息集合。 2,上面的区域显示了所有型的最上级型,通过选择某个型,可以动态刷新左边的树,因为左边的树在默认情况下会绑定所有的型集合,但是通过在最上面选择某个最上级型就可以动态刷新左边的树,显示某个最上级型下的 所有型,对于型较多的时候会非常有用。 3,在系统的右上角实现了动态跟换7种皮肤的下拉列表框,用cookie保存个人浏览信息,非常的酷 4,在中间区域实现了grid 并且实现了分页,根据型的不同动态显示,因为这个grid是嵌套在tabpanel里面的,这样就可以显示无限个grid,当查看某个grid的时候,无须在请求服务器,就可以查看,另外tabpanel可以动态的滚动,方便查看每个grid,同时在每个grid上面都实现了一个删除当前grid的按钮,方便清除grid。此外,为了方便大家在打开较多grid的情况下一个一个删除grid较为麻烦的问题,所有在这里实现了在每个grid上面都可以右键选择是删除当前grid还是删除其他的grid,但不会删除首页,也不要实现在首页上右键的功能,这个很重要哦。 5,在系统的最下面实现了一个显示公告的按钮和一个时钟,对于一个系统来说也是非常重要的。 下面叙述下这里的一些技术的实现和难点 1,主要是Ext2.2|vs2008|C#|Sql2005|三层|多层,务必是数据库sql2005才可以,因为里面的分页sql语句采用了sql2000不支持的语法。 2,系统里面主要了一些ext的组件:grid,tab,combox,button,toolbutton等,基本上所有的ext组件在这里都有涉及,还有就是后台返回的所有数据都是采用json格式,这也是实现ajax传递的首选技术了。 3,这是将多数ext高级组件综合应用的典型示例, 4,系统里面包含了 7种皮肤文件 5,系统里面包含了ext2.2框架 更多技术可以详看我的技术博客:http://www.cnblogs.com/mogen_yin/ 有数据库提供下载 本例已经在IE8下和FireFox的最新版本下测试通过 数据库在DB_51aspx文件夹中,附加即可
使用的技术:Ext2.2|vs2008|C#|Sql2005|三层|多层 本篇博客是殷良胜的一篇较早的demo,实现了整个系统框架的搭建,非常适合于做后台系统,管理系统,做网站也很不错,目前采用这样的技术就全国来说,还是很少,但将来的趋势已定很好,对人的视觉有很大的冲击力,首先介绍下该整体架构的实现吧: 1,整个系统实现了4个主要功能,左边,上边,中间,下面四个区域,具体是左边的树展示,这是数据,效果非常漂亮,然后选择这棵树的节点,就可以在中间区域显示该型下的所有信息集合。 2,上面的区域显示了所有型的最上级型,通过选择某个型,可以动态刷新左边的树,因为左边的树在默认情况下会绑定所有的型集合,但是通过在最上面选择某个最上级型就可以动态刷新左边的树,显示某个最上级型下的 所有型,对于型较多的时候会非常有用。 3,在系统的右上角实现了动态跟换7种皮肤的下拉列表框,用cookie保存个人浏览信息,非常的酷 4,在中间区域实现了grid 并且实现了分页,根据型的不同动态显示,因为这个grid是嵌套在tabpanel里面的,这样就可以显示无限个grid,当查看某个grid的时候,无须在请求服务器,就可以查看,另外tabpanel可以动态的滚动,方便查看每个grid,同时在每个grid上面都实现了一个删除当前grid的按钮,方便清除grid。此外,为了方便大家在打开较多grid的情况下一个一个删除grid较为麻烦的问题,所有在这里实现了在每个grid上面都可以右键选择是删除当前grid还是删除其他的grid,但不会删除首页,也不要实现在首页上右键的功能,这个很重要哦。 5,在系统的最下面实现了一个显示公告的按钮和一个时钟,对于一个系统来说也是非常重要的。 下面叙述下这里的一些技术的实现和难点 1,主要是Ext2.2|vs2008|C#|Sql2005|三层|多层,务必是数据库sql2005才可以,因为里面的分页sql语句采用了sql2000不支持的语法。 2,系统里面主要了一些ext的组件:grid,tab,combox,button,toolbutton等,基本上所有的ext组件在这里都有涉及,还有就是后台返回的所有数据都是采用json格式,这也是实现ajax传递的首选技术了。 3,这是将多数ext高级组件综合应用的典型示例, 4,系统里面包含了 7种皮肤文件 5,系统里面包含了ext2.2框架 更多技术可以详看我的技术博客:http://www.cnblogs.com/mogen_yin/ 有数据库提供下载 本例已经在IE8下和FireFox的最新版本下测试通过

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧