显示自定义JSON结构中的数据

时间:2013-03-13 10:42:46

标签: javascript html json

使用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

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。我创建了一个名为determine的函数,它将返回一个包含JSON

中每个键的标记的Object
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 );