使用javascript我需要显示属性 - >来自JSON结构的变量值。我还需要显示中的类依赖项,其中包含相应JSON结构的变量名称。
我无法将正确的类依赖项与相应的变量分开 属性数组
{
"demo": {
"class": [
{
"name": "class1",
"attributes": [],
"class": [
{
"name": "class2",
"attributes": [
{
"variable": "firstname"
},
{
"variable": "lastname"
},
{
"variable": "middlename"
}
]
}
]
},
{
"name": "class3",
"attributes": [],
"class": [
{
"name": "class4",
"attributes": [],
"class": [
{
"name": "class5",
"attributes": [
{
"variable": "city"
},
{
"variable": "state"
},
{
"variable": "country"
}
]
}
]
}
]
}
]
}
}
输出应该像
variable name class dependency
firstname :class1:class2
lastname :class1:class2
middlename :class1:class2
city :class3:class4:class5
state :class3:class4:class5
country :class3:class4:class5
答案 0 :(得分:0)
我得到了它的工作。我创建了一个名为determine
的函数,它将返回一个包含JSON
var determine = function ( obj ) {
var result = {},
index = 0,
name;
getData = function ( _obj, _result ) {
var key;
if ( 'name' in _obj ) {
name += ':' + _obj.name;
}
if ( 'class' in _obj ) {
_obj.class.forEach( function ( data ) {
getData( data, _result );
});
name = '';
} else {
for ( key in _obj.attributes ) {
_result[ _obj.attributes[ key ].variable ] = name.substr( 1 );
}
}
return _result;
};
for ( var item in obj ) {
name = '';
result[ item ] = getData( obj[ item ], {} );
index++;
}
return result;
};
var markup = determine( json );
console.log( markup );