首先,在发布此内容之前我要感谢堆栈溢出。这是场景。我想在 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的更多信息
The JSON.parse() method parses a JSON string, constructing the JavaScript value or object described by the string. An optional reviver function can be provided to perform a transformation on the resulting object before it is returned.
如果您对数组是否可以是 JSON 感到困惑,这里有一个很棒的 answer.
关于javascript - 在 Javascript 中发布数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44362827/