2

ajax と C# webmethod を使用して aoColumns を定義しようとしています。リストの行を追加する List> データ構造を使用して、サーバー側のデータを渡す方法と非常によく似ています。私の問題は、これが次のような文字列になることです。

{\"aoColumns\":[[\"\\\"bVisible\\\": False\"],[\"\\\"bVisible\\\": True\"],[\"\\\"bVisible\\\": True\"],[\"\\\"bVisible\\\": True\"],[\"\\\"bVisible\\\": True\"],[\"\\\"bVisible\\\": True\"],[\"\\\"bVisible\\\": True\"],[\"\\\"bVisible\\\": True\"]]}

列の定義で の代わりに角括弧を使用していることを除いて、これはほぼ正しいです{}。正しい JSON テキストを生成するにはどうすればよいですか? どんな助けでも大歓迎です!

4

1 に答える 1

1

http://www.datatables.net/のデータ テーブルを使用していると仮定しています。間違っている場合は修正してください。

JSON文字列を作成してAJAX呼び出しに戻すのに問題があるのか​​ 、それをサーバー側で使用できるものに変換するのに問題があるのか​​ わかりません。

Web メソッドで JSON 文字列を作成する場合は、辞書型を使用することをお勧めします。JSON 文字列に非常に近いからです。Dictionary 型を JSON 文字列に変換するには、次を使用します。

var dictionary = new Dictionary<string, string>()
// add values here...
return new JavaScriptSerializer().Serialize(dictionary);

JSON 文字列を Dictionary オブジェクトに変換する場合は、次を使用します。

var dictionary = new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(jsonString);

私がやりたいもう 1 つのことは、キーや値を操作する場合、辞書を配列に変換することです。操作したい正確なキー値がわからない場合、辞書からそれらを取得するのは面倒な場合があるためです。

参考までに、JavaScriptSerializer は System.Web.Script.Serialization.JavaScriptSerializer 名前空間と System.Web.Extensions アセンブリの一部です。

于 2011-07-01T22:58:42.283 に答える