如何从json输出中删除[“”]?

问题描述:

我有了这个代码:如何从json输出中删除[“”]?

$(document).ready(function() { 
$('#inverter_err').change(function() { 
    var qString = 'err=' +$(this).val(); 
    $.post('err_query.php', qString, processResponse); 
}); 

function processResponse(data) { 
    if(data != "false") { 
     $("#result").html(data).show("slow"); 
    } 
    else { 
     $("#result").hide("slow"); 
    } 
} 
}); 

当有来自err_query.php(这是导致echo json_encode($array);)一个简单的SQL查询一个积极的结果,结果是作为一个["The result"]
我如何除去[" "]我只需要显示的文本

+0

你不应该(或jQuery)_parsing_的JSON响应? – 2013-04-25 20:50:43

+0

对不起,但我是jQuery的新手。你能给我举个例子吗? – carlroger 2013-04-25 20:51:48

+0

欢迎来到Stack Overflow! – 2013-04-25 20:52:14

它看起来像它返回一个JSON数组,所以:

var value = JSON.parse(data)[0]; 

您需要解析响应试试这个:。如果你想

data = JSON.parse(data); 

或者使用jQuery:

data = $.parseJSON(data); 
+1

如果PHP发送正确的“Content-Type”头信息,jQuery应该自动解析响应。 – 2013-04-25 20:52:55

+0

或者如果您提供正确的数据类型。 '$ .post(url,data,handler,“json”)' – 2013-04-25 20:56:08

+0

如果我使用$ .post(url,data,handler,“json”),我只会得到一个空格。我也试过mattytommo的建议,在这里我也得到一个空白的div。 – carlroger 2013-04-25 21:02:50

您应该更改如下行:

$.post('err_query.php', qString, processResponse); 

$.post('err_query.php', qString, processResponse, 'json'); 

这表明数据的类型e xpected从服务器是JSON。

+0

这不是默认设置吗? – Grinn 2013-04-25 20:56:14

+0

默认值是“智能猜测”,它基于响应。如果服务器响应是纯文本,JSON将不会正确解析数据。 – 2013-04-25 20:57:54

+0

其实var value = JSON.parse(data)[0];诀窍。 – carlroger 2013-04-25 21:09:10