我有这个:

var json = jQuery.parseJSON(data);
    console.log(json)


输出为:

Object {sql: "SELECT venta.cliente_tipodoc,count(*) AS cantidad FROM venta venta", results: Array[1], dataForChart: Array[1], tableOrder: Array[2], chartOrder: Array[2]…}chartOrder: Array[2]0: "cantidad"1: "cliente_tipodoc"length: 2__proto__: Array[0]dataForChart: Array[1]encabezados: Array[2]grafica: "[[agrupamiento:[[atributo:cliente_tipodoc, tabla:venta]], dato:[conteo:1, texto:Cantidad], tipo:pie-chart]]"


最后,我需要访问“ grafica”值及其内部值。我尝试了“ json.grafica”,但这给了我:

grafica:[[agrupamiento:[[atributo:cliente_tipodoc, tabla:venta]], dato:[conteo:1, texto:Cantidad], tipo:pie-chart]]


我需要访问json.grafica中的“ tipo”值

谢谢指教

最佳答案

这是一个物体行走器。用您的数据替换obj,然后可以遍历其中的内容。



function walk(data, callback) {
  var chain = [];

  function loop(data) {
    if (typeof data == "object") {
      if (Array.isArray(data)) {
        for (var i = 0, len = data.length; i < len; i++) {
          chain.push("[" + i + "]");
          loop(data[i]);
          chain.pop();
        }
      } else {
        for (var k in data) {
          chain.push("." + k);
          loop(data[k]);
          chain.pop();
        }
      }
    } else {
      callback(data, chain);
    }

  }

  loop(data);
}

var obj = {
  a: 1,
  b: 2,
  c: [1, 2, 3, {
    d: 5,
    e: 6,
    f: 7
  }]
};

walk(obj, function(data, chain) {
  document.getElementById('out').innerHTML += "obj" + chain.join("") + " = " + data + "\n";
});

<pre id="out"></pre>

09-25 20:03