在不同的Javascript函数中使用JSON对象

时间:2016-09-16 05:50:39

标签: javascript json server-side

我想将JSON从服务器上完成的API请求发送到客户端,以便将该信息放入Google地图中。

请求正在运行。我正在获取一个JSON对象,我可以将其打印到控制台,但如果我尝试将该对象用作参数或将其保存到变量并打印它返回'undefined'。

这些事情中的任何一个都可能吗?这是服务器运行请求的地方:

router.get("/location/:latitude/:longitude", function(req, res) {
    yelp(req.params.latitude, req.params.longitude);
    res.redirect("/find");
});

这是我的职责:

var request_yelp = function(latitude, longitude) {
var yelp = new Yelp({
    consumer_key: consumer_key,
    consumer_secret: consumer_secret,
    token: token,
    token_secret: token_secret,
});

yelp.search({
    term: 'food',
    ll: latitude + ',' + longitude
})
.then(function (data) {
    /* Convert data to JSON string */
    var str = JSON.stringify(data);
    /* Parse JSON string to JSON Object */
    var obj = JSON.parse(str).businesses;

    return obj;
}) .catch(function (err) {
    console.error(err);
});

当服务器运行代码时,我尝试过这样的事情:

var json = yelp(req.params.latitude, req.params.longitude);

我还试过创建一个全局变量并在将其调用到函数之前将其分配给它。并尝试从函数中返回'data','str'和'obj'变量。还有一些其他的东西,但我总是得到相同的“未定义”响应。

我试图将对象发送到的功能只是在客户端运行的Google Map的createMarker函数。我没有太多代码可以显示,因为我无法检索JSON以开始使用它。

2 个答案:

答案 0 :(得分:0)

尝试创建一个全局对象,然后将数据分配给它:

var json = {} || new Object();
json = yelp(req.params.latitude, req.params.longitude);

答案 1 :(得分:0)

使用以下jquery函数来读取json响应。

        $.each(JSON VAR, function(key, values) {
           alert('key=' + key + ', val=' + values);
        });