将JSON对象解压缩并重命名为不同的格式

时间:2017-12-26 12:26:52

标签: javascript json node.js parsing

我从Foursquare API请求场地数据,但不会以geoJSON格式返回。我之前没有和JSON合作过,我也不知道如何处理这个问题。

我是否会遍历该对象并构建必要对象值的JavaScript array?如何使用相同的键选择所有值?是否可以从JSON响应中删除特定值并根据需要重命名其他值?这里最好的方法是什么?

下面我已经发布了我想要实现的输入和所需输出。

INPUT

{
    "meta": {
        "code": 200,
        "requestId": "57c63303498e78d449981c2c"
    },
    "response": {
        "venues": [{
            "id": "430d0a00f964a5203e271fe3",
            "name": "Brooklyn Bridge Park",
            "location": {
                "address": "Main St",
                "crossStreet": "Plymouth St",
                "lat": 40.70303245363086,
                "lng": -73.99389265510275
            }
        }, {
            "id": "51eabef6498e10cf3aea7942",
            "name": "Brooklyn Bridge Park - Pier 2",
            "contact": {},
            "location": {
                "address": "Furman St",
                "crossStreet": "Brooklyn Bridge Park Greenway",
                "lat": 40.69957016220183,
                "lng": -73.99793274204788
            }
        }]
    }
}

输出

[{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [-73.99389265510277, 40.703032453630854]
    },
    "properties": {
        "id": "430d0a00f964a5203e271fe3",
        "name": "Brooklyn Bridge Park",
        "location": {
            "address": "Main St",
            "crossStreet": "Plymouth St",
            "lat": 40.703032453630854,
            "lng": -73.99389265510277
        }
    }
}, {
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [-73.9979327420479, 40.69957016220184]
    },
    "properties": {
        "id": "51eabef6498e10cf3aea7942",
        "name": "Brooklyn Bridge Park - Pier 2",
        "location": {
            "address": "Furman St",
            "crossStreet": "Brooklyn Bridge Park Greenway",
            "lat": 40.69957016220184,
            "lng": -73.9979327420479
        }
    }
}]

2 个答案:

答案 0 :(得分:1)

您可以将请求中的结果作为变量保存到Foursquare API中,然后循环遍历它以获取所需的信息:

.toolbar-background-ios { 
  background: #ffffff;
  height: 70px;           //This was the problem
}

控制台结果:
布鲁克林大桥公园
布鲁克林大桥公园 - 2号码头

然后,您可以按照在输出中描述的方式将数据写入新的JS对象,而不是将其记录到控制台。问题是,你真的需要吗?信息就在那里......不需要将它重写为新对象。

答案 1 :(得分:1)

您可以将响应保存到变量中。别忘了jquery它。然后,您可以使用JSON.parse方法将其转换为您自己的格式。

Array#map