jQuery JSON解码(PHP到Javascript)

jQuery JSON解码(PHP到Javascript),php,javascript,jquery,arrays,json,Php,Javascript,Jquery,Arrays,Json,我正在尝试制作一个自动完成的脚本。我通过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

我正在尝试制作一个自动完成的脚本。我通过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"}] 

实现这一点的标准JavaScript方法是使用:

为了与缺少内置
JSON
对象的旧浏览器兼容,jQuery具有:


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

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

var myObject = JSON.parse( rawJSON );
如果您将jQuery与
$.ajax
(或其他选项)一起使用,则可以使用
数据类型:“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/json
jQuery,它还是会这样返回

尽管jQuery的另一种方式是使用
$.parseJSON(rawJSON)如果使用的是数据类型,则不必执行此操作

var JSONArray = $.parseJSON(rawJSON);

这是我的ajax调用:但实际上不起作用,控制台说JSONArray为null:/因为您将数据类型设置为json,所以可以废弃
var JSONArray=$.parseJSON(数据)因为它已经转换。我编辑我的答案是为了让你们觉得更有意义。如果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()
    }   
});
var JSONArray = $.parseJSON(rawJSON);