Javascript jQuery-如何从嵌套的JSON获取JSON数组名称
我是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
{
"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()