次のような配列の配列のjsonオブジェクトを返そうとしています:
{
'data': [[45,43,103],[34,43,230]]
}
次のように .NET 4.0 で asmx を使用します。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetData() {
StringBuilder sb = new StringBuilder();
sb.Append("'Data':[");
sb.Append("[45,43,103],");
sb.Append("[34,43,230]");
sb.Append("]");
return sb.ToString();
jQuery ajax 呼び出しを使用:
$.ajax({
type: "POST",
url: url, //defined elsewhere
data: "{}",
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: update,
});
と
function update(data)
{
console.log (data.d[1][1]); //looking at second array second element
}
問題は、asmx 呼び出しからの応答が次のようになり、更新機能が機能しないことです。
{"d":"\u0027Data\u0027:[[45,43,50],[34,43,50]]"}
エスケープされているか、適切にフォーマットされているようには見えません。何かが足りないようです。「データ」に「」のユニコード文字がまだあるのはなぜですか? ResponseFormat.Json がすべてを処理して json 形式にすると思いました。