Maluquice

Basicamente serve para converter linhas separadas por caractere especial em um Json.

by Rodrigo Portillo

HTML

<pre id="ver">
  
</pre>

JavaScript

var arrOriginal = [];
arrOriginal.push("Chave<~valor1");
arrOriginal.push("Chave<~valor2");
arrOriginal.push("Chave<~valor3");
arrOriginal.push("Chave<~valor4");
arrOriginal.push("Chapolim<~Tripa Seca<~Episodio2");
arrOriginal.push("Chapolim<~Tripa Seca<~Episodio3");
arrOriginal.push("Chapolim<~Tripa Seca<~Episodio4");
arrOriginal.push("Chapolim<~Quase Nada<~Episodio9");
arrOriginal.push("Chapolim<~Quase Nada<~Episodio10");
arrOriginal.push("AULA<~PROF GIRAFALLES<~KIKO<~NOTAS DO SEMESTRE<~8");
arrOriginal.push("AULA<~PROF GIRAFALLES<~KIKO<~NOTAS DO SEMESTRE<~7.5");
arrOriginal.push("AULA<~PROF GIRAFALLES<~POPS<~NOTAS DO SEMESTRE<~2.5");
arrOriginal.push("AULA<~PROF GIRAFALLES<~POPS<~NOTAS DO SEMESTRE<~2.5");

var objeto = [];

function gerarObjetoJson(arr){

	var n = 0; // índice
  var lastTemp = "";
	arr.forEach(function(entry) {
  	var line = "{";
    var fecha = "";
    
   	var aline = entry.split("<~");
    var temp = [];
    temp = temp.concat(aline);
    temp.pop();
    console.log(temp.toString());
    if(lastTemp != temp.toString()){
      lastTemp = temp.toString();
      n = 0;
    }

   	for(var i=0; i < aline.length-1; i++){
    	if(i == aline.length-2){
      	line += "\"" + aline[i] + "\":{\"" + n + "\":";
      }else{
    		line += "\"" + aline[i] + "\":{";
        fecha += "}";
      }
    }
   
   line = line + '"' + aline[aline.length-1] + '"}' + fecha + "}";
   line = (JSON.parse(line));
   objeto.push(line);
   n++;
	});
  
  objeto = combinar(objeto); //Combinar em um único objeto
}

function combinar(arr){
	var result = {};
  var curr = {};
	for(var i=0; i < arr.length; i++){
  	curr = arr[i];
  	result = $.extend(true, result, curr);
  }
  return result;
}


//Apenas visualizar
function ver(){
	//Fazer acontecer
	gerarObjetoJson(arrOriginal);
	$("#ver").html(JSON.stringify(objeto, null, 2));
}

ver();