Страницы

Поиск по вопросам

пятница, 6 марта 2020 г.

json.net Как сериализовать такой объект?

#c_sharp #jsonnet


json.net обычно сериализует словарь в коллекцию:

{"a":{"b":{"c":"d"}}}


Вот так:

class A
{
    public Dictionary a{get; set;}
}

class C
{
    public string c{get; set;}
}

class Program
{
    public static void Main(string[] args)
    {
        A a = new A();
        a.a = new Dictionary();
        C c = new C();
        c.c = "d";
        a.a.Add("b", c);

        string json = JsonConvert.SerializeObject(a);
        Console.WriteLine(json);

        Console.Write("Press any key to continue . . . ");
        Console.ReadKey(true);
    }
}


Но я хочу сериализовать словарь в массив:

{"a":["b":{"c":"d"}]}


Есть ли простой способ сделать это?
    


Ответы

Ответ 1



Ответ на ваш вопрос "Есть ли простой способ сделать это?" - нет. Нет никаких легальных способов сделать это. Все потому что требуемый вами формат невалиден. Вы можете только это сделать вручную, но вопрос уже будет в другом - надо ли вам это? Ведь никакой JSON парсер не сможет распарсить невалидную JSON-строку... P.S проверить валидность JSON-строки можно на https://jsonlint.com/.

Комментариев нет:

Отправить комментарий