使用 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 解析器
解析 json 数据时 - 仅使用 javascript - 没有数据显示?