2013-04-25 92 views
1

我有了這個代碼:如何從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

回答

2

它看起來像它返回一個JSON數組,所以:

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

您需要解析響應試試這個:。如果你想

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

0

您應該更改如下行:

$.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