首先,我要在发布此消息之前感谢堆栈溢出。这是场景。我想在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/

10-11 05:51