7

我正在尝试制作一个自动完成脚本。我通过 JSON 传递变量,然后我不知道如何继续解码 JSON。

这是我得到的 JSON 代码示例,我想将其转换为一个简单的 javascript 数组:

[{"ID":"1","name":"Amateur astronomy \r"},{"ID":"2","name":"Amateur microscopy \r"},{"ID":"173","name":"Amateur radio \r"},{"ID":"299","name":"Amateur astronomy \r"},{"ID":"349","name":"Amateur theater \r"}] 
4

2 回答 2

26

执行此操作的标准 JavaScript 方法是使用JSON.parse

var myArray = JSON.parse(someJSONString);

为了与缺少内置JSON对象的旧浏览器兼容,jQuery 有自己的方法

var myArray = jQuery.parseJSON(someJSONString);

从 jQuery/3.0 开始,这种方法已被弃用。

于 2013-07-21T00:54:56.333 回答
15

JavaScript 的标准方法是使用JSON.parse

var myObject = JSON.parse( rawJSON );

如果您将 jQuery 与$.ajax或替代)一起使用,则可以使用dataType: 'json'

$.ajax({ 
    type: 'GET', 
    url: 'request.php', 
    data: { variable: 'value' }, 
    dataType: 'json',
    success: function(data) { 
        // you can use data.blah, or if working with multiple rows
        // of data, then you can use $.each()
    }   
});

虽然,如果您的服务器发回标头,Content-Type: application/jsonjQuery 无论如何都会像这样返回它。

尽管使用 jQuery 的另一种方法是使用$.parseJSON(rawJSON);,但如果您使用的是 dataType,则不必这样做。

var JSONArray = $.parseJSON(rawJSON);
于 2013-07-21T02:01:05.180 回答