我对那里的麸皮有一个有趣的挑战。我试图将一组配置解析为有效的Javascript字符串。如果我用一个例子来解释它可能会更容易,所以这里说: 这是配置项:
Dictionary<string, string> configs = new Dictionary<string, string>();
configs.Add("dxform.dataField", "Description");
configs.Add("dxform.label.location", "left");
configs.Add("dxform.label.text", "Action Description");
configs.Add("dxform.validationRules.[0].type", "required");
configs.Add("dxform.validationRules.[0].message", "Action Description is required");
configs.Add("dxform.validationRules.[1].type", "stringLength");
configs.Add("dxform.validationRules.[1].min", "5");
configs.Add("dxform.validationRules.[1].max", "20");
configs.Add("dxform.validationRules.[1].message", "Description must be between 5 and 20 characters");
我想要做的是将上面的集合解析为以下javascript片段:
{
dataField : 'Description',
label: {
location: 'left',
text:'Action Description'
},
validationRules:[
{
type:'required',
message: 'Action Description is required'
},
{
type:'stringLength',
min:'5',
max:'20',
message: 'Description must be between 5 and 20 characters'
}
]
}
正如你所看到的,我使用点符号来推断javascript选项的嵌套,以及“[]”来推断它是否是一个数组,以及数组中的序列。我解决这个问题的第一个尝试是通过递归,但这样做是想知道是否有更直观的方法来实现这一点。配置语法是我自己的设计,如果需要可以更改。我真的需要实现一种在键/值数据表中表示复杂的,无限嵌套的javascript片段的方法。
任何帮助表示感谢。