从json中提取信息

时间:2017-09-05 07:51:04

标签: javascript html angularjs

所以我的控制器中有以下对象,它有一个名称,一个bean列表和一个操作列表:

{
  "name": "Charge",
  "beans": [

  ],
  "operations": [
    {
      "name": "getSize",
      "returnType": "java.lang.Integer",
      "description": "empty description",
      "parameters": [

      ]
    },
    {
      "name": "truncate",
      "returnType": "java.lang.Void",
      "description": "empty description",
      "parameters": [

      ]
    },
    {
      "name": "count",
      "returnType": "java.lang.Integer",
      "description": "empty description",
      "parameters": [
        {
          "name": "javaCode",
          "type": "java.lang.String",
          "value": null
        }
      ]
    },
    {
      "name": "update",
      "returnType": "java.lang.Integer",
      "description": "empty description",
      "parameters": [
        {
          "name": "javaSelectCode",
          "type": "java.lang.String",
          "value": null
        },
        {
          "name": "javaUpdateCode",
          "type": "java.lang.String",
          "value": null
        }
      ]
    },
    {
      "name": "delete",
      "returnType": "java.lang.Integer",
      "description": "empty description",
      "parameters": [
        {
          "name": "javaCode",
          "type": "java.lang.String",
          "value": null
        }
      ]
    },
    {
      "name": "dump",
      "returnType": "java.lang.Void",
      "description": "empty description",
      "parameters": [
        {
          "name": "javaSelectCode",
          "type": "java.lang.String",
          "value": null
        },
        {
          "name": "destinationPath",
          "type": "java.lang.String",
          "value": null
        }
      ]
    },
    {
      "name": "select",
      "returnType": "java.lang.String",
      "description": "empty description",
      "parameters": [
        {
          "name": "javaCode",
          "type": "java.lang.String",
          "value": null
        }
      ]
    }
  ],
  "$$hashKey": "object:620"
}

基本上我想在下拉菜单中显示此对象的所有操作。

所以我想要有类似的东西:

<div ng-repeat="operation in object.operations">
  {{operation.name}}
</div>

除了上面的代码在屏幕上没有显示任何内容,控制台中没有任何错误,没有。

非常感谢任何帮助!

编辑:

Javascript服务:

app.controller('selectAll', ['$http', '$scope' , '$rootScope', function ($http, $scope, $rootScope) {

    $scope.response;
    $scope.operations;

    $rootScope.$on("invokeSelectAll", function(){
        $scope.invokeSelectAll();
    });

    $scope.invokeSelectAll  = function(){
        $scope.response = $http.post('/invoke/selectAll/', $rootScope.dataObj);
        $scope.object = JSON.stringify($rootScope.object);
        console.log(" object operation from selectAll " + $scope.object);
        $scope.response.then(function(data) {
            $scope.responses = data.data ? data.data : "Select Operation not supported on this bean";
        });
    }
}]);

开发者控制台的屏幕截图: https://imgur.com/a/8WAAL

2 个答案:

答案 0 :(得分:1)

使用JSON.stringify()从JavaScript对象创建JSON字符串。

使用JSON.parse()将JSON字符串解析为JavaScript对象。

在您的情况下,您需要使用JSON.parse(),因为您从服务器获取了一个JSON字符串,并希望将其解析为JavaScript对象。

$scope.object = JSON.parse($rootScope.object);

答案 1 :(得分:1)

您正在使用JSON.stringify,它用于将javascript对象更改为字符串并仅将其存储为字符串。

您应该使用JSON.parse()解析数据,并且数据将成为JavaScript对象。你可以在ng-repeat中轻松使用它。

试试吧,它会正常工作