C# 如何使Mustache逻辑标记功能化
我目前正在使用C#创建/解析一个JSON文件,然后用它填充一个小胡子模板 我已经使用Nustache的NuGet包将Nustache安装到VB中 我的JSON文件如下所示:C# 如何使Mustache逻辑标记功能化,c#,json,tags,mustache,nustache,C#,Json,Tags,Mustache,Nustache,我目前正在使用C#创建/解析一个JSON文件,然后用它填充一个小胡子模板 我已经使用Nustache的NuGet包将Nustache安装到VB中 我的JSON文件如下所示: { "LinkName": "test", "TESTBOOL": true, "NodeProfileENUM": "TEST", "Requester": false, "Responder": false, "Nodes": { "Root": { "nodeName": "
{
"LinkName": "test",
"TESTBOOL": true,
"NodeProfileENUM": "TEST",
"Requester": false,
"Responder": false,
"Nodes": {
"Root": {
"nodeName": "Root",
"displayName": null,
"type": null,
"initialValue": null,
"serializable": null,
"className": null,
"enumName": null,
"isLast": true,
"actionList": {}
}
},
"LinkActions": {}
}
string nodeProfileFormat = File.ReadAllText("NodeProfileTemplate2.txt");
JObject parsedLinkTest =
JObject.Parse(File.ReadAllText("LinkDefinitionTest.json"));
string nodeProfileResultTest =
Nustache.Core.Render.StringToString(nodeProfileFormat, parsedLinkTest);
File.WriteAllText("NodeProfileTemplateResult.java", nodeProfileResultTest);
在我的模板中,我尝试使用如下标记:
{{#TESTBOOl}} test {{/TESTBOOL}}
但我一直收到一个错误,说块没有注册
我还尝试了遍历节点部分:
{{#each Nodes}}
{{#each this}}
{{this.nodeName}}
{{/each}}
{{/each}}
但这也不起作用
我正在解析和呈现json和模板(C#),如下所示:
{
"LinkName": "test",
"TESTBOOL": true,
"NodeProfileENUM": "TEST",
"Requester": false,
"Responder": false,
"Nodes": {
"Root": {
"nodeName": "Root",
"displayName": null,
"type": null,
"initialValue": null,
"serializable": null,
"className": null,
"enumName": null,
"isLast": true,
"actionList": {}
}
},
"LinkActions": {}
}
string nodeProfileFormat = File.ReadAllText("NodeProfileTemplate2.txt");
JObject parsedLinkTest =
JObject.Parse(File.ReadAllText("LinkDefinitionTest.json"));
string nodeProfileResultTest =
Nustache.Core.Render.StringToString(nodeProfileFormat, parsedLinkTest);
File.WriteAllText("NodeProfileTemplateResult.java", nodeProfileResultTest);
有什么我忘记做的吗?要测试模板,请使用。如果您修复了输入错误,则TESTBOOL模板可以正常工作:
{{#TESTBOOL}} test {{/TESTBOOL}}
如果要显示nodeName
,必须执行以下操作:
{{Nodes.Root.nodeName}}
json只包含一个对象。您的节点不是数组。也许您正在寻找迭代属性
关于您的C#,您可以使用nustachFileToFile
方法:
var parsedLinkTest = JObject.Parse(File.ReadAllText("LinkDefinitionTest.json"));
Nustache.Core.Render.FileToFile("NodeProfileTemplate2.txt", parsedLinkTest, "NodeProfileTemplateResult.java");
如果失败,请使用调试器检查parsedLinkTest
是否已正确填充