gpt4 book ai didi

javascript - 如何在 AngularJs 中获取 json 对象和嵌套对象的属性名称和值?

转载 作者:行者123 更新时间:2023-11-29 14:43:01 28 4
gpt4 key购买 nike

我有一个像这样的 json 对象

{
"from": {
"required": false,
"type": {
"name": {
"required": false,
"type": "String"
},
"email": {
"required": true,
"type": "String"
}
}
},
"to": {
"required": true,
"type": [
{
"name": {
"required": false,
"type": "String"
},
"email": {
"required": true,
"type": "String"
}
}
]
},
"subject": {
"required": true,
"type": "String"
},
"text": {
"required": true,
"type": "String"
},
"html": {
"required": true,
"type": "String"
}
}

该对象包含嵌套对象,具有从各种服务设置的属性。因此,属性名称是动态更改的。我想获取属性名称和各自的值。我已经尝试过以下代码。

 for (var prop in data) {
$scope.fieldsInfo.push({ "label": prop, "required":data.hasOwnProperty(prop) });
}

在上面的代码中,我还获取了属性名称 (from) 和所需的值,现在我想获取嵌套的对象属性名称 (name,email) 以及名称对象中的 (required,type) 值。在上面的对象 from 包含 type 是一个对象所以 isArray:false 和下一个对象 to 包含 type 是一个数组,所以 isArray:true 剩余对象 type 是一个字符串,所以 isArray:false。像这样输出

$scope.fieldsInfo=[];

$scope.fieldsInfo=[
{
"label" :"from",
"required" :false,
"isArray" :false,
"type" : [
{
"label" :"name",
"type" : "String",
"required": false
}
{
"label" : "email",
"type" : "String",
"required": true
}
]
},
{
"label" :"to",
"required" :true,
"isArray" :true,
"type" : [
{
"label" : "name",
"type" : "String",
"required": false
}
{
"label" : "email",
"type" : "String",
"required": true
}
]
},
{
"label" :"subject",
"required" :true,
"isArray" :false,
"type" :"String"
},
{
"label" :"text",
"required" :true,
"isArray" :false,
"type" :"String"
},
{
"label" :"html",
"required" :true,
"isArray" :false,
"type" :"String"
}
]

最佳答案

我不太确定你想要实现什么,但根据你的问题标题,我将提供一些处理 javascript 对象/数组的基础知识:

使用 for (var prop in data) {} 遍历键(就像您所做的那样)不适用于嵌套对象。一种可能的方法是使用递归函数:

function get_keys_recursive (object_or_array) {

for (var key in object)
if (object[key] != null) //null is also a object
if (typeof object[key] === 'object')
get_keys_recursive (typeof object[key]); //recursive function call
else {

console.log (key); //here you get all keys
console.log (object[key]); //here you get the value

}

}

get_keys_recursive (your_object); //function call

如果这不能回答您的问题,请提供更详细的信息。

关于javascript - 如何在 AngularJs 中获取 json 对象和嵌套对象的属性名称和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36122299/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com