使用参数化模板生成CSS

时间:2014-08-21 17:41:29

标签: c# asp.net json templates code-generation

我已查看帖子:Efficient plain text template engine ,但它没有回答我的问题。它的文档不仅仅是little lacking,而且我没有看到它正在做我想要做的事情。

我想知道你是否可以迭代模板并用函数填充值,函数的参数来自模板中的属性。 e.g:

"The <comparison property='fruit' value='green'> and the <comparison property='bowl' value='big'>."
在迭代每个变量并将其传递给函数后,

变为

"The fruit is green and the bowl is big."

我正在尝试根据包含外观设置的JSON对象生成一个css页面。

编辑:我想知道是否有办法从JsonConvert.DeserializeObject()获取直接对象。 JObject有很多我不需要的信息。

1 个答案:

答案 0 :(得分:2)

(我不确定这是否是您要找的,但是)我想,您可以将我的previous answer(显示使用JObject.SelectToken)与正则表达式结合起来创建自己的模板引擎

string Parse(string json, string template)
{
    var jObj = JObject.Parse(json);
    return Regex.Replace(template, @"\{\{(.+?)\}\}", 
                         m => jObj.SelectToken(m.Groups[1].Value).ToString());
}

string json = @"{name:""John"" , addr:{state:""CA""}}";
string template = "dummy text. Hello {{name}} at {{addr.state}} dummy text.";

string result = Parse(json, template);