Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从javascript中嵌套的JSON中获取多个键?_Javascript_Angularjs_Json - Fatal编程技术网

如何从javascript中嵌套的JSON中获取多个键?

如何从javascript中嵌套的JSON中获取多个键?,javascript,angularjs,json,Javascript,Angularjs,Json,我的JSON类似于: { "boundaries": [ { "boundary": { "boundaryId": "45083021141", "boundaryType": "USA_POSTCODE", "boundaryRef": "B1" } } ], "themes": [ { "TheftCrimeTheme": { "boundaryRef":

我的JSON类似于:

{
  "boundaries": [
    {
      "boundary": {
        "boundaryId": "45083021141",
        "boundaryType": "USA_POSTCODE",
        "boundaryRef": "B1"
      }
    }
  ],
  "themes": [
    {
      "TheftCrimeTheme": {
        "boundaryRef": "B1",
        "individualValueVariable": [
          {
            "name": "2013 Theft Crime",
            "description": "Theft Crime for 2013",
            "count": 2080
          }
        ]
      }
    },
    {
      "BurglaryCrimeTheme": {
        "boundaryRef": "B1",
        "individualValueVariable": [
          {
            "name": "2013 Burglary Crime",
            "description": "Burglary Crime for 2013",
            "count": 302
          }
        ]
      }
    }
  ]
}
我想获得要在图形中显示的计数值。正如您在上面的json中所看到的,在主题中有两个键,即TheftCrimeTheme和夜盗CrimeTheme。我想得到每个trimetheme中count的值。为此,我执行了以下代码:

 $http.get("http://152.144.218.70:8080/USACrime/api/crimeAPI?city="+$scope.strCity+"&crimeType="+$scope.type1+"&years="+$scope.type+"&month="+$scope.type2).success(function (result) {  
   for(var i=0;i<result.themes.length;i++){
                      var crime={};
                        console.log("did",result.themes[i]);
                      var test2 = result.themes[i];
                      console.log("test2",test2);
                      var test = test2[Object.keys(test2)];
                      console.log("test",test);
                      crime.name = Object.keys(result.themes[i]);
                      console.log("CrimeName",crime.name);
                      crime.data = [];
                      var test1 = test.individualValueVariable[0].count;
                      console.log("test1",test1);
                      crime.data.push(test1);
                      crime_data.push(crime);
                    }

    });
$http.get(“http://152.144.218.70:8080/USACrime/api/crimeAPI?city=“+$scope.strCity+”&crimeType=“+$scope.type1+”&years=“+$scope.type+”&month=“+$scope.type2”)。成功(函数(结果){

对于(var i=0;i此函数接收
info
(作为整个json)和
theme
作为要获取计数的主题(即:
“防盗犯罪名”


此函数接收
info
(作为整个json)和
theme
作为要获取计数的主题(即:
“防盗犯罪名”


为清晰起见,格式化此文件以分隔元素

// Builds and returns URL with query string attached.
const buildURL = (uri, params) => {
  let queryParams = Object.keys(params).map(function(k) {
      return encodeURIComponent(k) + '=' + encodeURIComponent(params[k])
  }).join('&');
  return uri + '?' + queryParams;
};

// Parses returned JSON object.
const parseStatistics = (result) => {
  // My assumption here is that you are receiving a JSON string, which 
  // would need to be parsed into an object before being used.
  let result = JSON.parse(result);

  // Set base object
  let namR = {};

  // Iterate through themes array.
  result.themes.forEach(function(element) {
    // Find the object name for current theme.
    let type = Object.keys(element)[0];

    // Find count for current theme.
    let count = element[type].individualValueVariable.count;

    // Set count.
    namR[type] = count;
  });

  // Log object
  console.log(namR);
};

// Set up url info.
let params = {
  city: $scope.strCity,
  crimeType: $scope.type1,
  years: $scope.type,
  month: $scope.type2
};
let baseURL = "http://152.144.218.70:8080/USACrime/api/crimeAPI";

// Execute request.  
$http.get(buildURL(baseURL, params)).success(parseStatistics(response));

为清晰起见,格式化此文件以分隔元素

// Builds and returns URL with query string attached.
const buildURL = (uri, params) => {
  let queryParams = Object.keys(params).map(function(k) {
      return encodeURIComponent(k) + '=' + encodeURIComponent(params[k])
  }).join('&');
  return uri + '?' + queryParams;
};

// Parses returned JSON object.
const parseStatistics = (result) => {
  // My assumption here is that you are receiving a JSON string, which 
  // would need to be parsed into an object before being used.
  let result = JSON.parse(result);

  // Set base object
  let namR = {};

  // Iterate through themes array.
  result.themes.forEach(function(element) {
    // Find the object name for current theme.
    let type = Object.keys(element)[0];

    // Find count for current theme.
    let count = element[type].individualValueVariable.count;

    // Set count.
    namR[type] = count;
  });

  // Log object
  console.log(namR);
};

// Set up url info.
let params = {
  city: $scope.strCity,
  crimeType: $scope.type1,
  years: $scope.type,
  month: $scope.type2
};
let baseURL = "http://152.144.218.70:8080/USACrime/api/crimeAPI";

// Execute request.  
$http.get(buildURL(baseURL, params)).success(parseStatistics(response));