2017-06-05 15 views
0

まず、スタックのオーバーフローを通知してからこれを投稿してください。ここにシナリオがあります。私はポストArray [["a"、 "b"]、["c"、 "d"]] javascriptにしたい。同じ[["a"、 "b"]、["c"、 "d"]]としてデータを返します。しかし、私はこれらの価値を持っています - "[[\" a \ "、\" b \ "]、[\" c \ "d \"]] "JavaScriptをポストする配列

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); 
+0

これは、文字列入力 'Json.Encode(input)'をエンコードしたからです。 –

答えて

1

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)を実行する必要があります。 JSON.parse

について詳しく

$.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()メソッドは、文字列で記述さ JavaScriptの値又はオブジェクトを構築する、JSON文字列を解析します。オプションの reviver関数を使用して、返される前に 結果オブジェクトに変換を実行できます。

配列をJSONすることができた場合、あなたは混乱している場合は、ここであなたの問題はCS-コードではなくJavaScriptであるように見えます偉大answer.

1

です。 var j = Json.Encode(input);行は、あなたのサイトから来ているすでにjsonでエンコードされた文字列をjson-encodeします。単に入力を返すだけなら、正しいjsonを取得する必要があります。

+0

@ jonasfh、@ Nadir Laskar、私はすでに理解してくれてありがとうございます。説明と時間をありがとう。もう一度別のシナリオを試してみましょう。それは私をたくさん助けます。 –

関連する問題