0

datatables.netinを使用して、 jQuery AJAX POST を使用MVC4して、並べ替え/レンダリングされたデータをデータテーブルからコントローラーに渡そうとしています。ActionResultこれが私のコードです:

$.ajax({
     url: "urlGoesHere",
     dataType: 'JSON',
     data: "{'jsonString':'" + JSON.stringify(data) + "', 'someParams':'" + someParamsVar + "'}",
     type: "POST",
     contentType: "application/json;charset=utf-8"
});

私のコントローラでは、NewtonSoft のライブラリを使用して、投稿されたデータを変換しようとしています。

public ActionResult ActionName(string jsonString, string someParams)
{
    List<myObjectName> requestData = JsonConvert.DeserializeObject<List<myObjectName>>(jsonString);
}

ただし、jsonString値はキー名のない JSON 配列のようです。これをリストに変換するにはどうすればよいですか? シリアル化の別の方法を試しましたが、どれも進歩しませんでした。

サンプルの JSON 文字列は次のとおりです。

[
    [
        "1",
        "01/09/2013",
        "04/09/2013",
        "07/09/2013",
        "lexeRoy"
    ],
    [
        "2",
        "02/09/2013",
        "03/09/2013",
        "04/09/2013",
        "myName"
    ]
]
4

1 に答える 1

0

これは、1 次元配列を逆シリアル化する方法です。ネストされた配列に対して機能するはずです。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

string json = "" +
                "  [" +
                "     \"Steve\"," +
                "     \"was\"," +
                "     \"here\"" +
                "   ]" +
                "";

String[] data = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<String[]>(json);
于 2013-12-03T18:15:03.547 に答える