2011-01-02 18 views
5

¿Hay algún motor de plantillas JSON? Estoy buscando algo como esto ...motor de plantillas 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); 

salida

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

Gracias por la respuesta!

Respuesta

4

Debe ser sencillo.

function template(data) { 

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

    return object; 

} 
0

Eche un vistazo a mustache. Parece ser lo que buscas.

+0

No estoy seguro de si puede usar dos fuentes de datos con Bigote ... ¿Puedo? – Latanmos

1

Si se pasa de JSON a JSON, puede quedarse con Javascript, y acaba de invertir el orden de las asignaciones:

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 está disponible en la mayoría de los navegadores modernos como un objeto nativo y la méthode. Si no puede utilizar json2.js

Pero si necesita un motor de plantillas para convertir JSON a HTML, puede echar un vistazo a pure.js

0

Sí, existe un motor de plantillas JSON. No sé lo que necesitas, pero json-templater es una opción.

template.json:

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

======== El código que utiliza la plantilla ========

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' 
    } 
} 
*/ 
Cuestiones relacionadas