2011-12-21 9 views
0

私はASP.NET MVC2コントローラでモデル化するためにJavaScriptからオブジェクトのリストを結合

{"parameters":"[{\"ParamName\":\"@s\",\"ParamValue\":\"12\"},{\"ParamName\":\"@t\",\"ParamValue\":\"21\"}]"} 

どのように私は、次のモデルにこれをマッピングしない私のjavascriptからJSON.stringifyを呼び出した後に得られた以下のJSONを持っています私のASP.Net MVC2コントローラ

public class SCVM 
{ 
    public string content { get; set; } 
    public string type { get; set; } 
    public List<Parameters> parameters { get; set; } 

    public SCVM() 
    { 
     parameters = new List<Parameters>(); 
    } 
} 

public class Parameters 
{ 
    public string ParamName { get; set; } 
    public string ParamValue { get; set; } 
} 

に私が辞書形式またはリストオブジェクトのいずれかでこれを取得しようとしているが、正しい方法でそれをうまくすることは困難見つけています。

+0

あなたのjsonに何か問題があります。あなたのパラメータは、別個のオブジェクトとしてではなく文字列として格納されます。あなたのJavaScriptコードも貼り付けてください。 – albertjan

+0

これはchromeの開発者ツールからコピーしたコンテンツです。私が使用するJSは 'JSON.stringify(parametersCollection) '、' var parametersCollection = []; 'であり、このparametersCollectionは次のオブジェクトの配列' function QueryParameters(paramName、paramValue) { this.ParamName = paramName ; this.ParamValue = paramValue; } ' – Saravanan

答えて

1

jsonがこのように見える場合は、おそらくそうです。

:あなたはデシリアライズでき

var parametersCollection = { 
    parameters: [] 
}; 

function QueryParameters(paramName, paramValue) { this.ParamName = paramName;  this.ParamValue = paramValue; } 

parametersCollection.parameters.push(new QueryParameters("@s", "12")); 
parametersCollection.parameters.push(new QueryParameters("@t", "21")); 

var json = JSON.stringify(parametersCollection); 

がそうのようJson.NET see hereである:あなたが正しいJSONを作成しますこのJavaScriptコードによりとともに

{ 
    "parameters":[ 
     { 
      "ParamName":"@s", 
      "ParamValue":"12" 
     }, 
     { 
      "ParamName":"@t", 
      "ParamValue":"21" 
     } 
    ] 
} 

を(あなたの質問に私のコメントを参照してください)

SCVM scvm = JsonConvert.DeserializeObject<SCVM>(json); 

ここで、jsonはjsonという形式の文字列です。

Hereは、jsonを使用してjsonデータをMVC2サイトに投稿する方法に関する優れたチュートリアルです。あなたはあなたのjsonを逆シリアル化するためにJson.NETライブラリを使用する必要はありません。

+0

私のJSONはあなたが与えたものと似ています。そして、私はどのようにコントローラに上記の行の 'json'を取得するのですか? – Saravanan

+0

このデータをコントローラに正しいフォーマットで取得するための組み込みメカニズムもありません(組み込みモデルバインディング)? – Saravanan

+0

json2.jsとともにJSON.stringifyを使用することで問題が解決しました。 – Saravanan

関連する問題