jQuery JSON解码(PHP到Javascript)
我正在尝试制作一个自动完成的脚本。我通过JSON传递变量,然后我不知道如何继续解码JSON 这是我得到的JSON代码示例,我想将其转换为一个简单的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
[{"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);