使用 Javascript 解析 JSON。来自 Laravel 的 JSON

Posted

技术标签:

【中文标题】使用 Javascript 解析 JSON。来自 Laravel 的 JSON【英文标题】:Parsing JSON using Javascript. JSON from Laravel 【发布时间】:2013-02-25 18:16:56 【问题描述】:

我正在使用 laravel 来查询 google 的搜索 api。这是执行此操作的代码:

Route::get('google/(:any)', function($query)

    $uri = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=".$query;
    $response = Httpful::get($uri)->send();
    $r = json_decode($response); 
    return Response::json($r);
);

这可以通过http://example.com/w/google/queryhere访问

我还尝试在 javascript 中发出多个请求并解析 json。

$.when( $.ajax(google), $.ajax(bing), $.ajax(yahoo)).then(function(resp1, resp2, resp3)
 
    var obj = jQuery.parseJSON(resp1);
);

但是,在使用 parseJSON 方法时,我得到了一个意外的语法标记。我不知道我哪里出错了。

【问题讨论】:

你能提供你得到的json响应吗 【参考方案1】:

首先,$.ajax 在检测到内容类型时会自行解析 JSON 响应 - 您无需手动执行此操作。

其次,$.when 应用于使用多个参数解析的 Promise 有点晦涩难懂。通常,ajax deferred 的回调有 3 个参数:data, textStatus, jqXHR。然而,合并后的 Promise 会将它们作为一个数组解析(每个延迟一个数组)。

所以改成

$.when( $.ajax(google), $.ajax(bing), $.ajax(yahoo)).then(function(resp1, resp2, resp3) 
    var obj = resp1[0];
);

【讨论】:

以上是关于使用 Javascript 解析 JSON。来自 Laravel 的 JSON的主要内容,如果未能解决你的问题,请参考以下文章

来自 WEBVTT 的 RDF/JSON Javascript 解析器

如何解析来自 Bigquery 结果的 json 响应?

解析 json 数据时 - 仅使用 javascript - 没有数据显示?

JavaScript 无法解析 JSON

围绕javascript json格式包装一个对象,如何获取角度来解析它

JSON(来自ww3school)