如何遍历angularJS中的以下JSON

时间:2016-04-06 09:25:15

标签: angularjs rest

所以我从休息服务中收到一个JSON字符串,该服务具有以下结构 -

{
    "map": {
        "Project [projectId=1, projectName=Project1]": [
            {
                "employeeId": 4,
                "employeeName": "fourthEmployee"
            }, {
                "employeeId": 3,
                "employeeName": "thirdEmployee"
            }
        ],
        "Project [projectId=2, projectName=Project2]": [
            {
                "employeeId": 4,
                "employeeName": "fourthEmployee"
            }
        ]
    }
}

(供参考,这是休息时可用的对象类型 - Map<Project,List<Employee>>

我的问题是,如何使用angularJS以表格的形式将这个特定JSON的数据显示在HTML页面上?

我确实知道ng-repeat要多次使用。只是使用ng-repeat,我无法从JSON获取值。有人可以用代码回复,这将非常有用,谢谢。

编辑:正如Robert所指出的,问题是我无法从复合项目数据中获取值。感谢帮助。感谢。

1 个答案:

答案 0 :(得分:0)

基于数据不足,我可以提出解决我推测OP实际存在的问题的方法。

复合项目数据问题

我怀疑您遇到的主要问题不是使用嵌套的ngRepeat,而是解析项目的复合数据。

这意味着在您尝试显示数据之前,您必须解析它或重新映射到您可以在视图中实际使用的内容。

此示例使用正则表达式来解析单个项目属性值。

var rx = /^Project \[projectId=(\d+), projectName=(.+)\]$/i;
var result = [];
for(var p in data.map)
{
    if (data.map.hasOwnProperty(p) && rx.test(p))
    {
        var m = rx.exec(p);
        result.push({
            id: m[1],
            name: m[2],
            employees: data.map[p]
        });
    }
}

这是working Fiddle,其中包含您提供的数据,可显示包含数据的项目。