[英]How to get the values from that JSON?
I've been trying to get the values of this JSON created from a PHP script and treated with JavaScript 我一直在尝试获取从PHP脚本创建并使用JavaScript处理的JSON的值
{
"category_id": "1",
"parent_id": "0",
"name": "Root Catalog",
"is_active": null,
"position": "0",
"level": "0",
"children": [{
"category_id": "2",
"parent_id": "1",
"name": "categoria raiz",
"is_active": "1",
"position": "1",
"level": "1",
"children": [{
"category_id": "14",
"parent_id": "2",
"name": "nombre1",
"is_active": "1",
"position": "1",
"level": "2",
"children": []
}, {
"category_id": "12",
"parent_id": "2",
"name": "nombre2",
"is_active": "1",
"position": "2",
"level": "2",
"children": []
}, {
"category_id": "11",
"parent_id": "2",
"name": "nombre3",
"is_active": "1",
"position": "3",
"level": "2",
"children": []
}, {
"category_id": "10",
"parent_id": "2",
"name": "nombre4",
"is_active": "1",
"position": "4",
"level": "2",
"children": []
}, {
"category_id": "7",
"parent_id": "2",
"name": "nombre5",
"is_active": "1",
"position": "7",
"level": "2",
"children": []
}, {
"category_id": "6",
"parent_id": "2",
"name": "nombre6",
"is_active": "1",
"position": "8",
"level": "2",
"children": [{
"category_id": "3",
"parent_id": "6",
"name": "nombre6_1",
"is_active": "1",
"position": "1",
"level": "3",
"children": []
}, {
"category_id": "5",
"parent_id": "6",
"name": "nombre6_2",
"is_active": "1",
"position": "2",
"level": "3",
"children": []
}, {
"category_id": "4",
"parent_id": "6",
"name": "nombre6_3",
"is_active": "1",
"position": "3",
"level": "3",
"children": []
}, {
"category_id": "15",
"parent_id": "6",
"name": "6_4",
"is_active": "1",
"position": "4",
"level": "3",
"children": []
}, {
"category_id": "16",
"parent_id": "6",
"name": "nombre6_5",
"is_active": "1",
"position": "5",
"level": "3",
"children": []
}]
}]
}]
}
When I call the HTML that contains the JavaScript just returns: 当我调用包含JavaScript的HTML时,仅返回:
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
undefined, undefined, undefined, undefined, undefined, undefined, undefined,
How should I iterate through the children label? 我应该如何遍历儿童标签?
My JavaScript is as follows: 我的JavaScript如下:
<script type='text/javascript'>
$(document).ready(function(){
console.log('entra...');
$.getJSON('ArbolCategorias.php', function(data) {
//console.log('data ...' + data);
$.each(data.children, function(key, val) {
if (data.children.has(children)){
$.each(children.children, function(key, val){
$('#jsonresult').append('<li id="' + key + '">' + val.category_id + ', ' + val.parent_id + ', ' + val.name + ', ' + val.is_active + ', ' + val.position + ', ' + val.level + ', ' + val.children + ', ' + '</li>');
});
}
else{
$('#jsonresult').append('<li id="' + key + '">' + val.category_id + ', ' + val.parent_id + ', ' + val.name + ', ' + val.is_active + ', ' + val.position + ', ' + val.level + ', ' + val.children + ', ' + '</li>');
}
});
});
});
Hope you can help me guys :D 希望你能帮助我
Try with data.children inside the each(). 尝试在each()中使用data.children。
$(document).ready(function(){
console.log('entra...');
$.getJSON('ArbolCategorias.php', function(data) {
console.log('data ...' + data);
$.each(data.children, function(key, val) {
$('#jsonresult').append('<li id="' + key + '">' + val.category_id + ', ' + val.parent_id + ', ' + val.name + ', ' + val.is_active + ', ' + val.position + ', ' + val.level + ', ' + val.children + ', ' + '</li>');
});
});
});
If you use $.each(data, ... you are iterating over the object and you need to iterate over the children list 如果您使用$ .each(data,...您正在遍历该对象,则需要遍历子级列表
This is the code using recursive function writeChildrens: 这是使用递归函数writeChildrens的代码:
function writeChildrens(element){
$.each(element.children, function(key, val) {
$('#jsonresult').append('<li id="' + key + '">' + val.category_id + ', ' + val.parent_id + ', ' + val.name + ', ' + val.is_active + ', ' + val.position + ', ' + val.level + '</li>');
if(val.children.length>0) writeChildrens(val);
});
}
$(document).ready(function(){
console.log('entra...');
$.getJSON('ArbolCategorias.php', function(data) {
console.log('data ...' + data);
writeChildrens(data);
});
});
Finally I get it, thanks a lot Ragnar for ur great help. 最终我明白了,非常感谢Ragnar的大力帮助。 My script now looks like 我的脚本现在看起来像
<script type='text/javascript'>
$(document).ready(function(){
$.getJSON('ArbolCategorias.php', function(data) {
//mejorar para que sea dinamico
$.each(data.children, function(key, val) {
$('#jsonresult').append('<li id="' + key + '">' + val.category_id + ', ' + val.parent_id + ', ' + val.name + ', ' + val.is_active + ', ' + val.position + ', ' + val.level + '</li>');
});
$.each(data.children, function(key, val) {
$.each(val.children, function(key, value) {
$('#jsonresult').append('<li id="' + key + '">' + value.category_id + ', ' + value.parent_id + ', ' + value.name + ', ' + value.is_active + ', ' + value.position + ', ' + value.level + '</li>');
});
});
$.each(data.children, function(key, val) {
$.each(val.children, function(key, value) {
$.each(value.children, function(key, value) {
$('#jsonresult').append('<li id="' + key + '">' + value.category_id + ', ' + value.parent_id + ', ' + value.name + ', ' + value.is_active + ', ' + value.position + ', ' + value.level + ', ' + value.children + ', ' + '</li>');
});
});
});
});
});
It's not dinamic so when I introduce a new child it will not get printed but i'll still working on it :D 它不是动态的,所以当我引入一个新的孩子时,它不会被打印出来,但我会继续处理它:D
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.