0
我有以下的JSON字符串,通過AJAX到達服務器:json_decode不解釋陣列
{"Names":"[{0:'asdasd'}]","Values":"[{0:'ad'}]"}
正如你看到的,名稱和值的目的是要保持一個數組。問題是,當我撥打 $data = json_decode(stripslashes($_POST['data']), true); $data['Names'][0]
我沒有得到'asdasd',因爲我想要的,但"["
符號。問題出在哪裏?
P.S. JS代碼,發送JSON字符串:
var arr_names = "[";
names.each(function(i){
arr_names += "{" + i + ":'" + $(this).val() + "'}";
if (i < names.length-1) arr_names += ",";
});
arr_names += "]";
var arr_val = "[";
values.each(function(i){
arr_val += "{" + i + ":'" + $(this).val() + "'}";
if (i < values.length-1) arr_val += ",";
});
arr_val += "]";
var el = { "Names" : arr_names, "Values" : arr_val };
el = encodeURIComponent(JSON.stringify(el));
$.ajax({
type:"POST",
dataType:"html",
data:"m=1&t="+type+"&data="+el,
url:plugin_path+"option-proc.php",
success: function(rsp){
$("#result").html(rsp);
}
});
名稱和值是一串文本字段,由類中選擇的。 米和噸發送變量,是完全無關的情況下:)
JSON並不是真的正確。數組可能不應該被編碼爲這樣的字符串,因爲它會迫使你必須進行多次解碼。 – Pointy
您能否給出一些最佳做法指南的鏈接? – Arnthor
最佳實踐:1.編寫JSON,而不是JavaScript。 2.使用JSON對數據進行編碼。不要將JSON首先構建到字符串中的東西序列化。 – Quentin