Как я могу превратить JSON в словарь C #? - PullRequest
1 голос
/ 31 октября 2011

У меня есть следующий JSON:

validate = {
    '(\\.org|\\.info|\\.biz|\\.name)$': [
        { 'type': 'size', 'pattern': /^.{3,64}$/, 'error': 'Your domain can have at max 26 characters and at least 3.' }
    ],
    '.*': [
        { 'type': 'general', 'pattern': /^[^\.-].*[^\.-]$/, 'message': 'Your domain name shouldn\'t contain . or - at the beginning or the end.' },
        { 'type': 'characters', 'pattern': /^[abcdefghijklmnopqrstwuvxyz0123456789]+$/, 'error': 'Your domain can have at max 26 characters and at least 3.' }
    ]
};

и попытался использовать так:

var validate = new Dictionary<string, dynamic> {
    {
        @"(\.org|\.info|\.biz|\.name)$",
        new {
            Type = "size",
            Pattern = @"^.{3,64}$",
            Message = "Your domain can have at max 26 characters and at least 3."
        }
    }
};

Где ключ динамического объекта - это шаблон регулярного выражения для расширения домена, а регулярное выражение внутри Pattern - ключ, соответствующий имени домена.

Но я не могу понять, как поместить 2 типа проверки в dynamic часть Dictionary.

Кто-нибудь делал что-то подобное раньше или это глупо, и я должен делать по-другому?

Смысл этого в том, что я могу сериализовать словарь как Json.

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Я пытался с List<dynamic> в динамической части моего словаря:

var validate = new Dictionary<string, List<dynamic>> {
    {
        "(\\.org|\\.info|\\.biz|\\.name)$",
        new List<dynamic>
        {
            new {
                Type = "size",
                Pattern = @"^.{3,64}$",
                Message = "Your domain can have at max 26 characters and at least 3."
            }
        }
    },
    {
        ".*",
        new List<dynamic>
        {
            new {
                Type = "general",
                Pattern = @"^[^\.-].*[^\.-]$",
                Message = "Your domain name shouldn\'t contain . or - at the beginning or the end."
            },
            new {
                Type = "characters",
                Pattern = @"^[abcdefghijklmnopqrstwuvxyz0123456789]+$",
                Message = "Your domain name should contain only alphanumeric characters."
            }
        }
    }
};

И, используя Json из JsonResult mvc3, он возвращал нужный мне json.

1 голос
/ 31 октября 2011

если вы пытаетесь сделать это для сайта MVC, я думаю, вам следует изучить пользовательскую проверку и позволить среде выполнения обработать для вас этот процесс.Это вопрос , в котором обсуждается, как реализовать пользовательский атрибут RegularExpressionAttribute, который выглядит здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...