我有这个:
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>