我有动态改变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中需要一些逻辑:(
答案 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,它有一个上述代码的工作解决方案。