Panegassi Panegassi - 2 months ago 12
JSON Question

Load data from a JSON object into an array

I'm having trouble getting the data from a multidimensional array.

I have a .php file that get the data from database and encode to JSON

JSON= {"1":{"SME":"0","SAUDE":"0"}....


Example of what I'm expecting:

array{
0 => Array{"SME" => 1,
"SAUDE" =>4}
1 => Array{"SME" => 10,
"SAUDE" => 0}
}


In my .HTML

$.getJSON('getOrgaoAno.php', function(data) {
$.each(data, function(key, val) {
alert(key); // Show me the index of the first array
alert(val); //Show me [OBJECT] in the alert box
}
});


How can I get the data from the second array and put into an array in my .HTML to use in Chart.js?

UPDATE 1

What i´m getting from the .php encoded to JSON ( now i´m using console.log thx, it´s a lot easier)

The "1,2,3....9" is the "key" of the first array that contains the object

1
Object { SECRETARIA MUNICIPAL DE DESENVOLVIMENTO URBANO : "0", SECRETARIA MUNICIPAL DE SAUDE: "0", SETOR DE RH: "0", SECRETARIA MUNICIPAL DE CULTURA, TURISMO, ESPORTE E LAZER : "0", SETOR DE CADASTRO DE IMOVEIS: "0", SECRETARIA MUNICIPAL DE DESENVOLVIMENTO ECONÔMICO, TRABALHO E MEIO AMBIENTE: "0", SETOR AGILIZA: "0" }testedados.html:21:5
2
Object { SECRETARIA MUNICIPAL DE DESENVOLVIMENTO URBANO : "1", SECRETARIA MUNICIPAL DE SAUDE: "0", SETOR DE RH: "0", SECRETARIA MUNICIPAL DE CULTURA, TURISMO, ESPORTE E LAZER : "0", SETOR DE CADASTRO DE IMOVEIS: "0", SECRETARIA MUNICIPAL DE DESENVOLVIMENTO ECONÔMICO, TRABALHO E MEIO AMBIENTE: "0", SETOR AGILIZA: "0" }testedados.html:21:5
3
Object { SECRETARIA MUNICIPAL DE DESENVOLVIMENTO URBANO : "0", SECRETARIA MUNICIPAL DE SAUDE: "1", SETOR DE RH: "1", SECRETARIA MUNICIPAL DE CULTURA, TURISMO, ESPORTE E LAZER : "0", SETOR DE CADASTRO DE IMOVEIS: "0", SECRETARIA MUNICIPAL DE DESENVOLVIMENTO ECONÔMICO, TRABALHO E MEIO AMBIENTE: "0", SETOR AGILIZA: "0" }testedados.html:21:5
4
Object { SECRETARIA MUNICIPAL DE DESENVOLVIMENTO URBANO : "0", SECRETARIA MUNICIPAL DE SAUDE: "0", SETOR DE RH: "0", SECRETARIA MUNICIPAL DE CULTURA, TURISMO, ESPORTE E LAZER : "1", SETOR DE CADASTRO DE IMOVEIS: "0", SECRETARIA MUNICIPAL DE DESENVOLVIMENTO ECONÔMICO, TRABALHO E MEIO AMBIENTE: "0", SETOR AGILIZA: "0" }testedados.html:21:5
5
Object { SECRETARIA MUNICIPAL DE DESENVOLVIMENTO URBANO : "0", SECRETARIA MUNICIPAL DE SAUDE: "0", SETOR DE RH: "0", SECRETARIA MUNICIPAL DE CULTURA, TURISMO, ESPORTE E LAZER : "1", SETOR DE CADASTRO DE IMOVEIS: "0", SECRETARIA MUNICIPAL DE DESENVOLVIMENTO ECONÔMICO, TRABALHO E MEIO AMBIENTE: "1", SETOR AGILIZA: "0" }testedados.html:21:5
6
Object { SECRETARIA MUNICIPAL DE DESENVOLVIMENTO URBANO : "0", SECRETARIA MUNICIPAL DE SAUDE: "0", SETOR DE RH: "0", SECRETARIA MUNICIPAL DE CULTURA, TURISMO, ESPORTE E LAZER : "0", SETOR DE CADASTRO DE IMOVEIS: "0", SECRETARIA MUNICIPAL DE DESENVOLVIMENTO ECONÔMICO, TRABALHO E MEIO AMBIENTE: "0", SETOR AGILIZA: "0" }testedados.html:21:5
7
Object { SECRETARIA MUNICIPAL DE DESENVOLVIMENTO URBANO : "0", SECRETARIA MUNICIPAL DE SAUDE: "0", SETOR DE RH: "0", SECRETARIA MUNICIPAL DE CULTURA, TURISMO, ESPORTE E LAZER : "0", SETOR DE CADASTRO DE IMOVEIS: "0", SECRETARIA MUNICIPAL DE DESENVOLVIMENTO ECONÔMICO, TRABALHO E MEIO AMBIENTE: "1", SETOR AGILIZA: "0" }testedados.html:21:5
8
Object { SECRETARIA MUNICIPAL DE DESENVOLVIMENTO URBANO : "0", SECRETARIA MUNICIPAL DE SAUDE: "0", SETOR DE RH: "0", SECRETARIA MUNICIPAL DE CULTURA, TURISMO, ESPORTE E LAZER : "0", SETOR DE CADASTRO DE IMOVEIS: "0", SECRETARIA MUNICIPAL DE DESENVOLVIMENTO ECONÔMICO, TRABALHO E MEIO AMBIENTE: "1", SETOR AGILIZA: "0" }testedados.html:21:5
9
Object { SECRETARIA MUNICIPAL DE DESENVOLVIMENTO URBANO : "0", SECRETARIA MUNICIPAL DE SAUDE: "0", SETOR DE RH: "0", SECRETARIA MUNICIPAL DE CULTURA, TURISMO, ESPORTE E LAZER : "0", SETOR DE CADASTRO DE IMOVEIS: "0", SECRETARIA MUNICIPAL DE DESENVOLVIMENTO ECONÔMICO, TRABALHO E MEIO AMBIENTE: "0", SETOR AGILIZA: "0" }


So, i want to split in a array the "key" and the "value" of the object

Like that if possible

var Desc = "Key"

var Valor = "Value"

Or it´s better to change the way i´m getting the data from .php?

UPDATE 2

For selecting the values in a array use

Two "Jquery.each"

var index = 0;
var index2 = 0;
jQuery.each( data, function( key, value ) {
index++;
index2 = 0;
jQuery.each( value, function( key, value ) {
if (index2 == 0)
{
arrDesc[index] = key;
arrDesc[index] += ",";
arrQtd[index] = value;
index2 ++;
}
else
{
arrDesc[index] += key;
arrDesc[index] += ",";
arrQtd[index] += value;
}

});
});

Answer

Try to debug your code with console.log() instead of alerts. Then you will see the following (open the browsers console with F12. To push the inner object to an array, you can just use Array.prototype.push().

var j = {"1":{"SME":"0","SAUDE":"0"}};
var arr = [];

$.each(j, function(key, val) {
    console.log(key); // 1
    console.log(val); // Object {SME: "0", SAUDE: "0"}
    console.log(val.SAUDE); // 0
    console.log(val.SME); // 0

    // add the object to the array:
    arr.push(val);     

});