如何将JSON转换为C#类?

Tru*_*an1 6 .net c# wcf json web-services

我有一个复杂的JSON对象,我想表示为C#类.我在名为"Form"的父类上有一个良好的开端,但是我如何表示不同类型的集合(请参阅下面的"元素"对象)?

这是JSON对象:

{
    "action": "index.html",
    "method": "post",
    "elements":
[
{
    "type": "fieldset",
    "caption": "User information",
    "elements":
    [
        {
            "name": "email",
            "caption": "Email address",
            "type": "text",
            "placeholder": "E.g. user@example.com",
            "validate":
            {
                "email": true
            }
        },
        {
            "name": "password",
            "caption": "Password",
            "type": "password",
            "id": "registration-password",
            "validate":
            {
                "required": true,
                "minlength": 5,
                "messages":
                {
                    "required": "Please enter a password",
                    "minlength": "At least {0} characters long"
                }
            }
        },
        {
            "name": "password-repeat",
            "caption": "Repeat password",
            "type": "password",
            "validate":
            {
                "equalTo": "#registration-password",
                "messages":
                {
                    "equalTo": "Please repeat your password"
                }
            }
        },
        {
            "type": "radiobuttons",
            "caption": "Sex",
            "name": "sex",
            "class": "labellist",
            "options":
            {
                "f": "Female",
                "m": "Male"
            }
        }
    ]
]
}
Run Code Online (Sandbox Code Playgroud)

我开始上课的时间如下:

public class Form
{
    public Guid id
    {
        get;
        set;
    }

    public string action
    {
        get;
        set;
    }

    public string method
    {
        get;
        set;
    }

    public ??? elements
    {
        get;
        set;
    }

    public Form()
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

如何处理"elements"属性以获得所需的JSON输出?

我在web.config中使用WCF 4.0和这些属性:automaticFormatSelectionEnabled ="false",defaultOutgoingResponseFormat ="Json".任何帮助或想法将不胜感激.

ano*_*non 1

哇。有趣的问题。也许使用 ExpandoObject / 动态?

http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx

http://blogs.msdn.com/b/csharpfaq/archive/2009/10/01/dynamic-in-c-4-0-introducing-the-expandoobject.aspx?PageIndex=4

或者我认为可以使用内置 .NET JSON 序列化器序列化匿名类型。