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格式是我第一个贴的那个格式
不知道我表述的清楚没? 大家帮我看看吧,谢谢了!
...全文
904 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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分都没人要么。。。 大家帮帮忙哦

111,093

社区成员

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

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

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