我已查看帖子: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有很多我不需要的信息。
答案 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);