首先,我要在发布此消息之前感谢堆栈溢出。这是场景。我想在JavaScript中发布数组[[“ a”,“ b”],[“ c”,“ d”]]。并以相同的[[“ a”,“ b”],[“ c”,“ d”]]返回数据。但是我得到了这些值-“ [[\” a \“,\” b \“],[\” c \“,\” d \“]]”
提前致谢。
var arraylist = [[“” a,“ b”],[“ c”,“ d”]];
$.ajax({
async: true,
type: "POST",
url: "/TestReciever.cshtml",
data: JSON.stringify(arraylist),
success: function (data) {
alert(data);
}
});
我的TestReciever.cshtml代码是:
string input;
using (var reader = new StreamReader(Request.InputStream)){
input = reader.ReadToEnd();
}
var j = Json.Encode(input);
Response.Write(j);
最佳答案
在你的代码中
string input;
using (var reader = new StreamReader(Request.InputStream)){
input = reader.ReadToEnd();
}
// Your are encoding the JSON data to STRING
var j = Json.Encode(input); // Its like doing JSON.stringify in JS
Response.Write(j);
这行
var j = Json.Encode(input);
将您的JSON转换为字符串。它在您的代码中的作用是因为JSON在其结构中包含双引号。因此,它基本上可以逃脱它们。如从[["a","b"],["c","d"]]
到"[[\"a\",\"b\"],[\"c\",\"d\"]]"
;在javascript中,您需要执行
JSON.parse(YOUR_RESPONSE)
以数组形式读取数据。$.ajax({
async: true,
type: "POST",
url: "/TestReciever.cshtml",
data: JSON.stringify(arraylist),
success: function (data) {
var your_array = JSON.parse(data); //This will parse your string to ARRAY
/* NOW USE YOUR ARRAY HERE AS A NORMAL ARRAY*/
}
});
有关JSON.parse的更多信息
JSON.parse()方法解析JSON字符串,以构造
字符串描述的JavaScript值或对象。可选的
可以提供齐磊功能,以对
返回之前的结果对象。
如果您对array是否可以是JSON感到困惑,这里是一个很好的answer.
关于javascript - 用Javascript发布数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44362827/