JSON模板引擎

时间:2011-01-02 21:32:41

标签: javascript json templates

有没有JSON模板引擎?我正在寻找这样的东西......

var template = {
  'sts': '%data1.sts%',
  'msg': '%data2.msg%'
};

var data1 = {
  'sts': 200
};

var data2 = {
  'msg': 'Hi!'
};

// render(template, [data sources]);
var response = render(template, [data1, data2]);

console.log(response);

输出

{
  'sts': 200,
  'msg': 'Hi!'
}

感谢您的回复!

5 个答案:

答案 0 :(得分:3)

保持简单。

function template(data) {

  var object = {
    'sts': data[0].sts,
    'msg': data[1].msg
  };

  return object;

}

答案 1 :(得分:1)

看看mustache。它似乎就是你所追求的。

答案 2 :(得分:1)

如果你从JSON转到JSON,你可以继续使用Javascript,只需颠倒分配顺序:

var data1 = {
  sts: 200
};

var data2 = {
  msg: 'Hi!'
};

var template = {
  sts: data1.sts,
  msg: data2.msg
};

console.log( JSON.stringify(template) ); //--> {"sts":200,"msg":"Hi!"}

JSON.stringify在大多数现代浏览器上都可用作本机对象和方法。如果没有,您可以使用json2.js

但是如果你需要一个模板引擎将JSON转换为HTML,你可以查看pure.js

答案 3 :(得分:0)

是的,存在JSON模板引擎。我不知道你需要什么,但json-templater是一个选择。

template.json:

{
  "magic_key_{{magic}}": {
    "key": "interpolation is nice {{value}}"
  }
}

========使用模板的代码========

var object = require('json-templater/object');
var result = object(
  require('./template.json'),
  { magic: 'key', value: 'value' }
);

console.log(result);

/* should look something like this: 
{
  magic_key_key: {
    key: 'interpolation is nice value'
  }
}
*/

答案 4 :(得分:-2)

我对jQuery的新模板引擎非常满意:

http://api.jquery.com/category/plugins/templates/

您可以在填写模板之前使用jQuery.extend()合并数据片段。