.NET Core 3.1 - Нужна нестандартная JSON сериализация
От: senglory  
Дата: 19.03.21 04:56
Оценка:
public class Merch
{
public string Name {get; set;}
public string[] Pos {get; set;}
}


public class ReqDto
{
public Merch[] Agents {get; set;}
}



Нужно чтобы Agents в инстансе ReqDto сериализовался так:

"MID: "name from 1st in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],

"MID: "name from 2nd in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],

...

"MID: "name from Nth in Agents",
"POSIDS":[ тут стандартный список строк в JSON ],



Как такое сделать?
Re: .NET Core 3.1 - Нужна нестандартная JSON сериализация
От: varenikAA  
Дата: 19.03.21 06:03
Оценка: -1
Здравствуйте, senglory, Вы писали:


S>Как такое сделать?


https://thoth-org.github.io/Thoth.Json/
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: .NET Core 3.1 - Нужна нестандартная JSON сериализация
От: senglory  
Дата: 19.03.21 06:06
Оценка:
S>>Как такое сделать?

AA>https://thoth-org.github.io/Thoth.Json/


А на C# есть это?
Re: .NET Core 3.1 - Нужна нестандартная JSON сериализация
От: varenikAA  
Дата: 19.03.21 06:08
Оценка:
Здравствуйте, senglory, Вы писали:

S>"MID: "name from 1st in Agents",

S>"POSIDS":[ тут стандартный список строк в JSON ],

https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-customize-properties

Это имеете ввиду? Это стандарт, так-то.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: .NET Core 3.1 - Нужна нестандартная JSON сериализация
От: senglory  
Дата: 19.03.21 06:25
Оценка:
S>>"MID: "name from 1st in Agents",
S>>"POSIDS":[ тут стандартный список строк в JSON ],

AA>https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-customize-properties


AA>Это имеете ввиду? Это стандарт, так-то.



Не вижу там примера для списков/векторов в моем варианте. Или не там смотрю?
Re: .NET Core 3.1 - Нужна нестандартная JSON сериализация
От: VladCore  
Дата: 19.03.21 09:20
Оценка:
Здравствуйте, senglory, Вы писали:


S>
S>public class Merch
S>{
S>public string Name {get; set;}
S>public string[] Pos {get; set;}
S>}


S>public class ReqDto
S>{
S>public Merch[] Agents {get; set;}
S>}
S>



S>Нужно чтобы Agents в инстансе ReqDto сериализовался так:


S>

S>"MID: "name from 1st in Agents",
S>"POSIDS":[ тут стандартный список строк в JSON ],

S>"MID: "name from 2nd in Agents",
S>"POSIDS":[ тут стандартный список строк в JSON ],

S>...

S>"MID: "name from Nth in Agents",
S>"POSIDS":[ тут стандартный список строк в JSON ],



S>Как такое сделать?


Ничего не понял. Вам нужно проекцию создать при сериализации или переименовать поля в json?
Re[3]: .NET Core 3.1 - Нужна нестандартная JSON сериализация
От: varenikAA  
Дата: 19.03.21 10:02
Оценка:
Здравствуйте, senglory, Вы писали:

S>>>Как такое сделать?


AA>>https://thoth-org.github.io/Thoth.Json/


S>А на C# есть это?


неа, но можно попробовать из сишарпа заюзать либо напрямую, либо все операции выполнить на фшарпе и обернуть в класс или простую стат функцию.
интероп стандартный.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: .NET Core 3.1 - Нужна нестандартная JSON сериализация
От: senglory  
Дата: 19.03.21 10:18
Оценка:
S>>"MID: "name from 1st in Agents",
S>>"POSIDS":[ тут стандартный список строк в JSON ],

S>>"MID: "name from 2nd in Agents",

S>>"POSIDS":[ тут стандартный список строк в JSON ],

S>>...


S>>"MID: "name from Nth in Agents",

S>>"POSIDS":[ тут стандартный список строк в JSON ],
S>>[/q]


S>>Как такое сделать?


VC>Ничего не понял. Вам нужно проекцию создать при сериализации или переименовать поля в json?


Видимо, проекцию. ПРичем вопрос десериализации этого дела мне не интересен — это уже не моя печаль будет.
Re: .NET Core 3.1 - Нужна нестандартная JSON сериализация
От: varenikAA  
Дата: 20.03.21 01:33
Оценка:
Здравствуйте, senglory, Вы писали:


S>Нужно чтобы Agents в инстансе ReqDto сериализовался так:


S>

S>"MID: "name from 1st in Agents",
S>"POSIDS":[ тут стандартный список строк в JSON ],

S>"MID: "name from 2nd in Agents",
S>"POSIDS":[ тут стандартный список строк в JSON ],



S>Как такое сделать?


using System;
using static System.Console;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace jt
{
    public class Merch
    {
        [JsonPropertyName("MID")]
        public string Name { get; set; }
        [JsonPropertyName("POSIDS")]
        public string[] Pos { get; set; }
    }


    public class ReqDto
    {
        public Merch[] Agents { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            var dto = new ReqDto
            {
                Agents = new[] {
                    new Merch{ Name = "M1", Pos = new [] { "S1M1", "S2M1" }},
                    new Merch{ Name = "M2", Pos = new [] { "S1M2", "S2M2" }}
                }
            };

            WriteLine(JsonSerializer.Serialize(dto.Agents));
        }
    }
}
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: .NET Core 3.1 - Нужна нестандартная JSON сериализация
От: varenikAA  
Дата: 20.03.21 03:03
Оценка:
Здравствуйте, senglory, Вы писали:

S>Как такое сделать?


[{"MID":"M1","POSIDS":["S1M1","S2M1"]},{"MID":"M2","POSIDS":["S1M2","S2M2"]}]


Других вариантов думаю нет. Т.к. все остальное будет уже не json(тогда просто метод-расширение для вашей дтошнки который возвращает строку в нужном формате(от слова форматирование)).
Совет, попробуйте формулировать четче свои желания, а то какая-то лирика получается.
☭ ✊ В мире нет ничего, кроме движущейся материи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.