如何在Javascript中使用循环和控制语句进行高级字符串模板化
基本上在运行时,我得到如下数组如何在Javascript中使用循环和控制语句进行高级字符串模板化,javascript,npm,Javascript,Npm,基本上在运行时,我得到如下数组 var colors = ['red', 'green', 'blue']; { "color" : { "name" : "foo", "properties" : { ... } }, "green" : { "name" : "foo", "properties" : { ... }
var colors = ['red', 'green', 'blue'];
{
"color" : {
"name" : "foo",
"properties" : {
...
}
},
"green" : {
"name" : "foo",
"properties" : {
...
}
},
"blue" : {
"name" : "foo",
"properties" : {
...
}
}
}
我需要构建一个JSON字符串,如下所示
var colors = ['red', 'green', 'blue'];
{
"color" : {
"name" : "foo",
"properties" : {
...
}
},
"green" : {
"name" : "foo",
"properties" : {
...
}
},
"blue" : {
"name" : "foo",
"properties" : {
...
}
}
}
是否有任何字符串模板框架支持循环和控制语句来构建如上所述的JSON字符串您可以尝试使用Nunjucks包。它支持javascript和npm库。 模板可以声明如下(命名为colors.template): 您可以按如下方式解析json模板:
var nunjucks = require('nunjucks');
nunjucks.configure({ autoescape: true });
var output = nunjucks.render('colors.template', {colors : ['red', 'green', 'blue'] });
Fit.ui模板引擎简单直观: 您可以从嵌入的HTML文件和外部HTML文件加载HTML-示例:
var t=new Fit.Template(true);
//加载嵌入式HTML
tpl.LoadHtml(`
{[MyHeadline]}
{[Description]}
- {[ItemTitle]}
`);
//从外部HTML文件加载HTML
t、 LoadUrl(“view.html”,函数(发件人)
{
//模板已准备好填充
t、 Content.MyHeadline=“欢迎”;
t、 Content.Description=“这是一个测试..”;
对于使用纯javascript的(var i=1;i:
function arrayToJSONProp(array, json) {
var strJson = JSON.stringify(json);
var output = "{";
for(var i = 0; i < array.length; i++) {
var elem = array[i];
output += '"' +elem +'" : ' +strJson +", ";
}
return JSON.parse(output.slice(0, -2) +"}");
}
var colors = ["red", "green", "blue"]; // Colors array
var prop = { // JSON obj input
"name" : "foo",
"properties" : {
"ran": "test"
}
}
console.log(arrayToJSONProp(colors, prop)); // Output of JSON obj
函数arrayToJSONProp(数组,json){
var strJson=JSON.stringify(JSON);
var输出=“{”;
对于(var i=0;i
谢谢你的回答,我实际上在寻找一个带有模板库的通用解决方案。