0

次のことをしたいです。

  1. 複雑なjsonオブジェクトを非表示の入力変数に渡します
  2. フォームコレクションオブジェクトを介してその隠れた変数を取得します。
  3. その非表示のテキスト値を動的オブジェクトに変換します。動的オブジェクトをループして、そこからデータを取得できます。

ですから、上記の最初の2つの項目は私にできると思います。

  1. $( "#hiddenVariableID")。val(JSON.stringify(data));
  2. MVCコントローラーにFormCollectionコレクションと呼ばれるパラメーターがあります。次に、次の方法で値を取得します。String data = collection.Get( "hiddenVariableID");
  3. ?? これを行う方法がわかりません。

渡すデータはオブジェクトの配列です。オブジェクトが同じになることは決してないので、ループスルーできるある種の動的オブジェクトに結果を変換する必要があります。

隠れた変数で渡されたデータをストリーミングしたいので、これを行うためにajax呼び出しを行うことはできません。したがって、フォームの送信を介する必要があります。

ありがとう、-Tesh

4

1 に答える 1

1

その時点で、JSONパーサーを使用して、動的にアクセスできる文字列とJSONオブジェクトを変換できます。多くのJSONパーサーがあります。以下のコードは、JavaScriptSerializer(.NET Frameworkの一部)とJSON.NET(MS以外のライブラリですが実際にはIMOです)の2つでどのように実行できるかを示しています。良い)。

public static void Test()
{
    string JSON = @"[
        {'name':'Scooby Doo', 'age':10},
        {'name':'Shaggy', 'age':18},
        {'name':'Daphne', 'age':19},
        {'name':'Fred', 'age':19},
        {'name':'Velma', 'age':20}
    ]".Replace('\'', '\"');

    Console.WriteLine("Using JavaScriptSerializer");
    JavaScriptSerializer jss = new JavaScriptSerializer();
    object[] o = jss.DeserializeObject(JSON) as object[];
    foreach (Dictionary<string, object> person in o)
    {
        Console.WriteLine("{0} - {1}", person["name"], person["age"]);
    }

    Console.WriteLine();
    Console.WriteLine("Using JSON.NET (Newtonsoft.Json) parser");
    JArray ja = JArray.Parse(JSON);
    foreach (var person in ja)
    {
        Console.WriteLine("{0} - {1}", person["name"].ToObject<string>(), person["age"].ToObject<int>());
    }
}
于 2012-10-17T19:57:06.740 に答える