如果名称和值是未知的并且长度也是如何读取json数据

时间:2016-03-07 15:55:24

标签: javascript jquery json

我必须动态创建json,这不是问题,但在一个地方json名称和值对是随机的,也可以是不同的,所以可以读取json。

var json = {
        "set":[
{
    "name":"Device 1",
    "children":[ 
    {
        "name":"name",
       "name1":"name",
       "xyz":"hello",
       "abc":"hello1",
       "vwx":"hello2",
       "stu":"hello3",      
        "children":[
        {
            "type1":"iname",
            "type2":"cname",
            "type3":"pname"
        }
        ]
    }
    ]
},{
    "name":"Device 2",
    "children":[ 
    {
        "name":"name3",
       "name4":"name4",
       "def":"hello2",
       "lmn":"hello3",      
        "children":[
        {
            "type1":"iname",
            "type2":"cname",
            "type3":"pname"
        }
        ]
    }
    ]
}
]};

这是我在孩子面前迭代数据所做的一部分。但我怀疑的只是孩子之间的数据,这就是为什么我缩短了json,只是将它限制在我问过的问题

$(window).bind("load", function() {
var mouseX;
var mouseY;
$(document).mousemove( function(e) {
   mouseX = e.pageX; 
   mouseY = e.pageY;
});
    $.each(device_json.device, function(i, v) {
      $('#front'+v.position).append(v.name);
            $('#front'+v.position).hover(function(){
                $('#front'+v.position).append('<div class="hover"><b>Name :</b> ' +v.name+'</div>').css({'cursor':'pointer'}).show();
                $('.hover').css({'top':mouseY,'left':mouseX});
                },function(){
                    $('.hover').remove();
                });

我必须以表格形式显示儿童之间的数据,首先td将是名称,第二个将显示值,但是儿童之间有多少是未知的,并且序列也不相同。任何帮助将不胜感激。谢谢提前

1 个答案:

答案 0 :(得分:0)

“children”是一个对象数组,您可以循环这些对象属性。这是一种方法:

for (var i = 0, keys = Object.keys(object), l = keys.length; i < l; ++i){
    propertyValue = object[keys[i]];
}

您可以在https://jsperf.com/iterating-over-object-properties/2

找到其他人

然后你可以测试属性的名称,看看它是否是“子”数组,或者别的什么。

如果您可以访问创建此json的内容,也许您也可以更改其组织以避免出现问题。