2011-11-14 12 views
5

MVC3では、ASP.NETが着信JSONリクエストボディを引数の形式で単純指定オブジェクトにマップするのが本当に便利だとわかりました。JSON文字列を実際のオブジェクト定義にバインドする方法は?

この機能を利用する方法はありますか?特定のユースケース?

標準の.NETプログラミングでは、json文字列を取り、それを実際のオブジェクトにマップ(バインド)します...(辞書なし)?

答えて

11

確かに、JavaScriptSerializerクラスのようなJSONシリアライザを使用することができます。これは、ASP.NET MVCが使用するもの、またはJson.NETなどのサードパーティライブラリです。たとえば:

using System; 
using System.Web.Script.Serialization; 

public class Customer 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

class Program 
{ 
    static void Main() 
    { 
     var serializer = new JavaScriptSerializer(); 
     var json = "{name: 'John', age: 15}"; 
     var customer = serializer.Deserialize<Customer>(json); 
     Console.WriteLine("name: {0}, age: {1}", customer.Name, customer.Age); 
    } 
} 

またはJson.NETであなたが好む場合:

using System; 
using Newtonsoft.Json; 

public class Customer 
{ 
    public string Name { get; set; } 
    public int Age { get; set; } 
} 

class Program 
{ 
    static void Main() 
    { 
     var json = "{name: 'John', age: 15}"; 
     var customer = JsonConvert.DeserializeObject<Customer>(json); 
     Console.WriteLine("name: {0}, age: {1}", customer.Name, customer.Age); 
    } 
} 
+0

素晴らしい...私が使用し '辞書<文字列、文字列>'おかげで見ていたすべての例! – jondavidjohn

関連する問題