如何在angularjs中解析动态变化的json

时间:2016-10-20 15:23:19

标签: angularjs

我有动态改变json,如下面的例子

示例1:

"Flower":{
        "color": "red"     
}

示例2:

"Flower":{
        "color": "red" ,
         "seasonal": "yes"    
}

示例3:

"Flower":{
        "color": "red" ,
         "seasonal": {
              "seasons":{
                       "winter": "yes",
                         "summer" : "no"  
                        }        
                     }    
          } 

并且对于上面的例子,输出应该像

example1 : color:red
example2 :color:red,seasonal:yes
example3: color:red,seasonal.seasons.winter:yes,seasonal.seasons.summer:no

这里的问题是不知道每次都会发生什么,它应该是输出格式。我在javascript中需要一些逻辑:(

1 个答案:

答案 0 :(得分:1)

Angular提供了诸如isObject和isString之类的函数,它们将告诉您变量是对象还是字符串。

您可以遍历对象的属性并检查属性是对象还是字符串。如果它是一个对象,那么你可以递归该对象的属性,否则只需打印它。请查看以下内容。

$scope.iterate = function(object) {
if (!angular.isObject(object))
  return object;
var opt = "";
for (var property in object) {
  if (object.hasOwnProperty(property)) {
    opt = opt + property + " - " + $scope.iterate(object[property]) + " ";
  }
}
return opt;
}

你也可以看看这个小提琴here,它有一个上述代码的工作解决方案。