给定一组静态嵌套类,例如:
public static class LocalSiteMap
{
public static class Navigation
{
public static readonly string Home = "homePage";
public static class PageIds
{
public static class ShowManagement
{
public static readonly string Index = "showManagement";
}
public static class Shows
{
public static readonly string Create = "addShows";
}
}
public static class Actors
{
public static readonly string Details = "actorDetailsForm";
public static readonly string History= "historyDetailsForm";
}
}
}
我想构建一个等效的 JSON 字符串,例如:
{ 'localSiteMap' : {
{ 'navigation': {
'home': 'homePage',
'pageIds': {
'showManagement': {
'index': 'showManagement'
},
'shows': {
'create': 'addShows'
}
},
'actors': {
'details': 'actorDetailsForm',
'history': 'historyDetailsForm'
}
}
}
每个嵌套类都会在 JSON 中生成一个嵌套对象。每个字符串属性都会在 JSON 中生成一个字符串键/值对。
我知道我可以反映根静态类并很容易地构建一个 JSON 字符串(这就是我目前正在采用的方法),但我想知道是否有更优雅的方法来做到这一点。例如,如果这是一个实例匿名类型,那么我可以很容易地对其进行序列化。
一些背景知识:这是一组通过 WebAPI 控制器传递给在浏览器中运行的单页应用程序的常量。在 C#(服务器)和 JS(客户端)世界中拥有相同的页面标识符集对于使用页面对象模式的浏览器自动化测试非常有用。
'LocalSiteMap' 静态类已经融入到一个相当成熟的项目中,因此将其更改为实例类或匿名类型对我来说并不是一个真正的选择。