如何将JSON字符串绑定到实际对象定义?

时间:2011-11-14 15:15:02

标签: c# asp.net json asp.net-mvc-3 serialization

我发现在MVC3 ASP.NET中将传入的JSON请求主体以参数的形式映射到一个简单的指定对象真的很方便...

有没有办法在特定用例之外使用此功能?

更进一步,在标准.NET编程中,使用json字符串并将其映射(绑定)到真实对象...(不是字典)?

1 个答案:

答案 0 :(得分:11)

当然,您可以使用JSON序列化程序,例如ASP.NET MVC使用的JavaScriptSerializer类或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);
    }
}