Javascript jQuery-如何从嵌套的JSON获取JSON数组名称

Javascript jQuery-如何从嵌套的JSON获取JSON数组名称,javascript,jquery,json,Javascript,Jquery,Json,我是jQuery和JSON的新手。我希望你能帮我完成我的小任务。我有以下JSON对象结构: { "recipe": { "myREAL":0, "mySTRING":"STRING variable", "myUDINT":0, "mybool":0, "ingNumber":[0,0,0,0,0], "ingMinimumWeight":[0,0,0,0,0], "ingNo

我是jQuery和JSON的新手。我希望你能帮我完成我的小任务。我有以下JSON对象结构:

{
    "recipe": {
        "myREAL":0,
        "mySTRING":"STRING variable",
        "myUDINT":0,
        "mybool":0,
        "ingNumber":[0,0,0,0,0],
        "ingMinimumWeight":[0,0,0,0,0],
        "ingNominalWeight":[0,0,0,0,0]
    }
}
 Key: myREAL Value: 0
 Key: mySTRING Value: STRING variable
 Key: myUDINT Value: 0
 Key: mybool Value: 0
 ingNumber:
 Key: 0 Value: 0
 Key: 1 Value: 0
 Key: 2 Value: 0
 Key: 3 Value: 0
 Key: 4 Value: 0
 ingMinimumWeight:
 ...
我希望获取数组名的名称,而不是仅获取索引和索引值

到目前为止,我的输出:

 Key: myREAL Value: 0
 Key: mySTRING Value: STRING variable
 Key: myUDINT Value: 0
 Key: mybool Value: 0
 Key: 0 Value: 0
 Key: 1 Value: 0
 Key: 2 Value: 0
 Key: 3 Value: 0
 Key: 4 Value: 0
 ...
我对这种结构感兴趣:

{
    "recipe": {
        "myREAL":0,
        "mySTRING":"STRING variable",
        "myUDINT":0,
        "mybool":0,
        "ingNumber":[0,0,0,0,0],
        "ingMinimumWeight":[0,0,0,0,0],
        "ingNominalWeight":[0,0,0,0,0]
    }
}
 Key: myREAL Value: 0
 Key: mySTRING Value: STRING variable
 Key: myUDINT Value: 0
 Key: mybool Value: 0
 ingNumber:
 Key: 0 Value: 0
 Key: 1 Value: 0
 Key: 2 Value: 0
 Key: 3 Value: 0
 Key: 4 Value: 0
 ingMinimumWeight:
 ...
我希望在Jquery中执行此操作,而不指定数组变量的名称

我的jQuery代码:

function iter(obj) {
    for (var key in obj) {
        if (typeof (obj[key]) == 'object') {
            iter(obj[key]);
        } else {
            content = " Key: " + key + " Value: " + obj[key] + '\n';
            var box = $("#myArea");
            box.val(box.val() + content);
        } 
    }
}

根据所需的输出,在再次递归调用函数之前,需要向box-in添加内容

function iter(obj) {
     var box = $("#myArea");
     for (var key in obj) {
        if (typeof (obj[key]) == 'object') {
            content = key+ " : \n";
            box.val(box.val() + content);
            iter(obj[key]);
        } else {
            content = " Key: " + key + " Value: " + obj[key] + '\n';
            box.val(box.val() + content);
        } 
    }
}

如果处理对象,则需要将属性名
.append()。还可以使用
==
检查您是否正在处理对象。还要检查
obj[key]
是否不是
null
,因为
typeof null
也作为对象计算


您到底想要实现什么?我想动态地为数组输出提供一个标题。正如您在我的JSON对象中看到的,arrayname是ingNumber,ingMinimumWeight。。。如果我没有指定一个标题,我会一直得到Key=number,Value=number。在控制台上看起来不太好。每次遇到数组时,我希望它首先打印数组的名称,然后打印键和值。@user3000138如果条件为,则只需在对象中包含box.val()