如何使用javascript / angularJS将JSON数据转换为Hierarchical(树)格式?

时间:2015-08-04 10:24:34

标签: javascript json angularjs

[
  {"id":1,"countryname":"India","zoneid":"1","countryid":"1","zonename":"South","stateid":"1","zid":"1","statename":"Karnataka"},
  {"id":1,"countryname":"India","zoneid":"1","countryid":"1","zonename":"South","stateid":"2","zid":"1","statename":"Karnataka"},
  {"id":1,"countryname":"India","zoneid":"1","countryid":"1","zonename":"South","stateid":"3","zid":"1","statename":"Karnataka"},
  {"id":1,"countryname":"India","zoneid":"2","countryid":"1","zonename":"East","stateid":"4","zid":"2","statename":"Karnataka"},
  {"id":2,"countryname":"UK","zoneid":"3","countryid":"2","zonename":"West","stateid":"5","zid":"3","statename":"Karnataka"},
  {"id":3,"countryname":"Australia","zoneid":"3","countryid":"3","zonename":"West","stateid":"6","zid":"3","statename":"Karnataka"},
  {"id":3,"countryname":"Australia","zoneid":"4","countryid":"3","zonename":"North","stateid":"7","zid":"4","statename":"Karnataka"},
  {"id":4,"countryname":"Sweedan","zoneid":null,"countryid":null,"zonename":null}
       ]

3 个答案:

答案 0 :(得分:0)

使用JSON.parse(你的json字符串)

转到docs

答案 1 :(得分:0)

angular.fromJson(string)angular.toJson(object/array)

答案 2 :(得分:0)

您需要规范化您的数据,以便国家/地区的相关记录位于子集合下,如下所示:

[
{
    "id": 1,
    "countryname": "India",
    "zones": [
        {
            "zoneid": 1,
            "zonename": "South",
            "states": [
                {
                    "stateid": 1,
                    "statename": "Karnataka"
                }
            ]
        },
        {
            "zoneid": 2,
            "zonename": "East",
            "states": [
                {
                    "stateid": 1,
                    "statename": "Karnataka"
                }
            ]
        }
    ]
},
{
    "id": 2,
    "countryname": "UK",
    "zones": [
        {
            "zoneid": "3",
            "zonename": "West",
            "states": [
                {
                    "stateid": "5",
                    "statename": "Karnataka"
                }
            ]
        }
    ]
}
]

如果您的数据是字符串,则需要通过JSON.parse将其转换为JSON,如前面的答案所述。从那里(如果您无法在服务器端规范化数据),您可以访问属性以像普通对象一样构建规范化的JSON。有几种方法可以构建“新的”JSON数组,但希望这是您的起点。如果您仍然遇到问题,我可以指出您的方法。