如何解析从远程服务器返回的 JSONP 数据

Posted

技术标签:

【中文标题】如何解析从远程服务器返回的 JSONP 数据【英文标题】:How to parse JSONP data returned from remote server 【发布时间】:2011-04-02 09:25:24 【问题描述】:

我正在尝试通过 JSONP 获取一些数据。使用 Firebug,我能够看到正确返回的数据,但我很难思考如何解析它。数据返回真的是一个嵌套数组对吗? someFunction 是回调函数的名称。这是数据的外观:

someFunction([  
  
       "title":"Sample Title",  
       "link":"http://example.com",  
       "description":"Sample Description",  
       "publisher":"Sample Publisher",  
       "creator":"Sample Author",  
       "date":"Thu, 19 Aug 2010 12:41:29 GMT",  
       "num_pages":10,  
       "num_results":"10"  
,  
]);

只是对如何正确解析和输出有点困惑。

【问题讨论】:

【参考方案1】:

您不必解析数据。它已经是一个有效的 javascript 对象。例如,打印 someFunction 中第一个对象的描述属性

function someFunction(result) 
    alert(result[0].description); // alerts "Sample Description"

【讨论】:

【参考方案2】:

用正确的名称和正确的参数编写一个函数。 JS引擎会帮你解析。

function someFunction(data) 
    // Now data is an Array, containing a single
    // Object with 8 properties (title, link, etc)

【讨论】:

只是要明确一点:对于这个例子,有 1 个具有 8 个属性的对象,但其他服务器可能会返回带有多个对象的 JSON。使用 console.log(data) 可用于获取返回的对象列表。

以上是关于如何解析从远程服务器返回的 JSONP 数据的主要内容,如果未能解决你的问题,请参考以下文章

JSONP 详解

jsonp

jsonp

如何从 WCP 请求中返回 JsonP?

JSONP原理

使用 AngularJS 从 NodeJS 服务器返回 JSONP