将包含数组的Object插入到返回JSON中

时间:2015-04-23 19:19:33

标签: javascript json

我知道这听起来很奇怪,但原因是让我的JSON与Faux-3D Shaded Globe一起工作

我正在调用Instagrams端点API,我得到以下数据放入JSON:

姓名,经度,纬度

我的问题是:如何在原始JSON对象中创建另一个JSON对象,该对象将保存具有经度和纬度的数组?

这是我想要的理想回报JSON

Features: Array[size]
  Object:
     properties:Object:
     geometry: Object:
               coordinates: array[2]

这是我的尝试

complete: function(data){
      var geoArray = data.map(function(item){
          tempJSON = {};
          geometry = new Object();
          var coordinates = []
          if(item.location === null){
            console.log("null check");
          }
          else{
            tempJSON.name = item.location.name;
            geometry = coordinates.push(item.location.latitude,item.location.longitude);
            tempJSON.geometry = geometry;
            // tempJSON.geometry[1] = item.location.longitude;
          }
        return tempJSON;
      });
      return res.json({features: geoArray});
    }
  });

现在我将它作为geomtry返回几何:2当我检查chrome控制台

1 个答案:

答案 0 :(得分:2)

您正在创建(并丢弃)名为geometry的对象,并将其替换为数组(或尝试 - push()返回项目的计数在数组中,而不是数组本身),然后将其分配给tempJSON的成员。跳过中间变量:

var geoArray = data.map(function(item){
    tempJSON = {};

    if (item.location === null){
      console.log("null check");
    }
    else {
      tempJSON.name = item.location.name;
      tempJSON.geometry = {
        coordinates: [item.location.latitude, item.location.longitude]
      };
    }

    return tempJSON;
  });