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

jon*_*ohn 5 c# asp.net serialization json asp.net-mvc-3

我发现它非常方便,在MVC3中,ASP.NET会将传入的JSON请求体映射到一个参数形式的简单指定对象......

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

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

Dar*_*rov 12

当然,您可以使用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);
    }
}
Run Code Online (Sandbox Code Playgroud)

或者如果您愿意,可以使用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);
    }
}
Run Code Online (Sandbox Code Playgroud)