如何在 json 中使用小胡子和单个实体渲染 html 块
How do I render an html block using mustache and single entity in json
我正在尝试学习 mustache 模板引擎,我有一个我似乎无法理解的简单示例...
鉴于此 json
{
"targetPatient": {
"address": {
"city": "Moore",
"country": null,
"lines": [
"123 Main Street"
],
"state": "SC",
"zip": "29388"
},
"communicationList": null,
"dateOfBirth": "1970-02-01",
"gender": "M",
"personName": {
"firstName": "Johnny",
"lastName": "Smith"
}
}
}
我想渲染这个html
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Title</title>
</head>
<body>
<H3>
Johnny Smith
</H3>
</body>
</html>
使用此模板...
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Title</title>
</head>
<body>
<H3>
{{targetPatient.personName.firstName}} {{targetPatient.personName.lastName}}
</H3>
</body>
</html>
真希望能这么简单。
呈现这个简单示例的最简单方法是什么。
我正在尝试使用 c# stubble 库进行渲染。这是代码...
var template = GetTemplate(); //get above template
var json = GetJson(); //get above json
//var stubble = new Stubble.Core.Builders.StubbleBuilder().Build();
//var output = stubble.Render(template, json);
var output = Nustache.Core.Render.StringToString(template,json);
var filePath = $@"<user>\Desktop\stubble\{Guid.NewGuid().ToString()}.html";
File.AppendAllText(filePath,output);
这是呈现的内容...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<H3>
</H3>
</body>
</html>
这是 .net fiddle...
https://dotnetfiddle.net/92BPoa
编辑 - 示例从使用 Stubble 更改为 Nustache,因为它正在使用 dotnetfiddle.net
我发现库需要接收 json 对象而不是字符串(恰好是 json)作为数据。
var template = GetTemplate();
var json = GetJson();
//var stubble = new Stubble.Core.Builders.StubbleBuilder().Build();
//var output = stubble.Render(template, json);
var jsonResult = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
var output = Nustache.Core.Render.StringToString(template,jsonResult);
var hbtemplate = HandlebarsDotNet.Handlebars.Compile(template);
var output2 = hbtemplate(jsonResult);
我正在尝试学习 mustache 模板引擎,我有一个我似乎无法理解的简单示例...
鉴于此 json
{
"targetPatient": {
"address": {
"city": "Moore",
"country": null,
"lines": [
"123 Main Street"
],
"state": "SC",
"zip": "29388"
},
"communicationList": null,
"dateOfBirth": "1970-02-01",
"gender": "M",
"personName": {
"firstName": "Johnny",
"lastName": "Smith"
}
}
}
我想渲染这个html
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Title</title>
</head>
<body>
<H3>
Johnny Smith
</H3>
</body>
</html>
使用此模板...
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Title</title>
</head>
<body>
<H3>
{{targetPatient.personName.firstName}} {{targetPatient.personName.lastName}}
</H3>
</body>
</html>
真希望能这么简单。
呈现这个简单示例的最简单方法是什么。
我正在尝试使用 c# stubble 库进行渲染。这是代码...
var template = GetTemplate(); //get above template
var json = GetJson(); //get above json
//var stubble = new Stubble.Core.Builders.StubbleBuilder().Build();
//var output = stubble.Render(template, json);
var output = Nustache.Core.Render.StringToString(template,json);
var filePath = $@"<user>\Desktop\stubble\{Guid.NewGuid().ToString()}.html";
File.AppendAllText(filePath,output);
这是呈现的内容...
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<H3>
</H3>
</body>
</html>
这是 .net fiddle...
https://dotnetfiddle.net/92BPoa
编辑 - 示例从使用 Stubble 更改为 Nustache,因为它正在使用 dotnetfiddle.net
我发现库需要接收 json 对象而不是字符串(恰好是 json)作为数据。
var template = GetTemplate();
var json = GetJson();
//var stubble = new Stubble.Core.Builders.StubbleBuilder().Build();
//var output = stubble.Render(template, json);
var jsonResult = Newtonsoft.Json.JsonConvert.DeserializeObject(json);
var output = Nustache.Core.Render.StringToString(template,jsonResult);
var hbtemplate = HandlebarsDotNet.Handlebars.Compile(template);
var output2 = hbtemplate(jsonResult);