将数据从JSON对象加载到数组中

时间:2016-09-06 20:39:25

标签: javascript json chart.js

我无法从多维数组中获取数据。

我有一个.php文件,它从数据库中获取数据并编码为JSON

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

我期待的例子:

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

在我的.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
    }
});

如何从第二个数组中获取数据并将其放入我的.HTML数组中以在Chart.js中使用?

更新1

我从.php编码到JSON得到了什么(现在我使用的是console.log thx,它更容易)

“1,2,3 .... 9”是包含对象

的第一个数组的“键”
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" }

所以,我想在数组中分割对象的“键”和“值”

如果可能的那样

var Desc =“Key”

var Valor =“Value”

或者更好地改变我从.php获取数据的方式?

更新2

要选择数组中的值,请使用

两个“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;
         }

      });
    });

2 个答案:

答案 0 :(得分:4)

尝试使用console.log()调试代码而不是警报。然后您将看到以下内容(使用F12打开浏览器控制台。要将内部对象推送到数组,您只需使用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);     

});

答案 1 :(得分:0)

您的PHP脚本“getOrgaoAno.php”应如下所示

<?php
 $data = array(/*YOUR DATA IS HERE*/);
 echo json_encode($data);
?>

在“&lt;?php”之前和“?&gt;”之后的“getOrgaoAno.php”脚本中没有更多的空格或任何字符,否则JavaScript中的JSON格式错误

你的JavaScript没问题,只需从浏览器进行控制即可。

<script type="text/javascript">
 $.getJSON('getOrgaoAno.php', function(data) {
  $.each(data, function(key, val) {
   console.log(key); //Show me the index of the first array
   console.log(val); //Show me [OBJECT] in the console
  })
 });
</script>