【发布时间】:2016-03-21 02:38:42
【问题描述】:
我有一个这样的 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 包含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 angularjs json