Skip to content

Instantly share code, notes, and snippets.

@cmilfont
Created September 17, 2011 20:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save cmilfont/1224353 to your computer and use it in GitHub Desktop.
Save cmilfont/1224353 to your computer and use it in GitHub Desktop.
Turma 3 - Exercicio 3 - Montar JSON
var json = {}
var name = "empresa.id";
var valor = "01/01/2011";
var gerarJSON = (function gerarJSON(json, hierarquia, value) {
var hierarquia = hierarquia.split(".");
var last = hierarquia.pop();
var temp = {};
if(typeof value !== "undefined") {
temp[last] = value;
} else {
temp[last] = json;
}
json = temp;
return (hierarquia.length > 0)? gerarJSON(json, hierarquia.join(".")) :
json;
});
gerarJSON(json, name, valor)
var json = {}
var name = "empresa.id";
var valor = "01/01/2011";
function criaJSON(json, nome, valor){
json[nome] = valor;
return json;
};
var gerarJSON = (function gerarJSON(json, hierarquia, value) {
var hierarquia = hierarquia.split(".");
var first = hierarquia.shift();
return (hierarquia.length > 0 ) ?
criaJSON(json, first, gerarJSON(json, hierarquia.join("."), value)) :
criaJSON({}, first, value);
});
gerarJSON(json, name, valor)
var json = {}
var name = "empresa.data";
var valor = "01/01/2011";
var gerarJSON = (function gerarJSON(json, hierarquia, value) {
var hierarquia = hierarquia.split(".");
var last = hierarquia.pop();
json = function(value, temp){
temp[last] = (typeof value !== "undefined") ? value : json;
return temp;
}(value, {});
return (hierarquia.length > 0)? gerarJSON(json, hierarquia.join(".")) : json;
});
gerarJSON(json, name, valor)
var json = {}
var name = "empresa.fundacao.data";
var valor = "01/01/2011";
var gerarJSON = (function gerarJSON(json, hierarquia, value) {
var hierarquia = hierarquia.split(".");
var first = hierarquia.shift();
return function(json, nome){
json[nome] = (hierarquia.length > 0 ) ?
gerarJSON({}, hierarquia.join("."), value) : value;
return json;
}(json, first);
});
gerarJSON(json, name, valor)
var json = {}
var name = "empresa.fundacao[1].data";
var valor = "01/01/2011";
var tratarArray = function(name, value) {
var position;
if( position = name.match(/\[(\d+)\]/)) {
var arr = [];
arr[ position[1] ] = value;
return arr;
} else {
return value;
}
}
var gerarJSON = (function gerarJSON(json, hierarquia, value) {
var hierarquia = hierarquia.split(".");
var first = hierarquia.shift();
return function(json, nome){
json[nome.replace(/\[(\d+)\]/, "")] = (hierarquia.length > 0 ) ?
tratarArray(nome, gerarJSON({}, hierarquia.join("."), value)) :
tratarArray(nome, value);
return json;
}(json, first);
});
gerarJSON(json, name, valor)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment