Runtime: .NET Core 3.0 рдореЗрдВ JSON рдХрд╛ рднрд╡рд┐рд╖реНрдп

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЕрдХреНрддреВре░ 2018  ┬╖  193рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dotnet/runtime

JSON рд▓рдЧрднрдЧ рд╕рднреА рдЖрдзреБрдирд┐рдХ .NET рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╣рд┐рд╕реНрд╕рд╛ рдмрди рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ XML рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рднреА рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, .NET рдХреЗ рдкрд╛рд╕ JSON рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ (рдорд╣рд╛рди) рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╣рдордиреЗ [Json.NET] рдкрд░ рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ .NET рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕реЗрд╡рд╛ рджреЗрдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред

рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рд╣рдо рдЕрдкрдиреЗ JSON рд╕рдорд░реНрдерди рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ:

  • рд╣рдореЗрдВ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реЗ JSON API рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред рд╣рдореЗрдВ JSON API рдХреЗ рдПрдХ рдирдП рд╕реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ Span<T> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЕрддреНрдпрдзрд┐рдХ рдЯреНрдпреВрди рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ UTF-16 string рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рд╕реАрдзреЗ UTF-8 рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ Kestrel рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдкрд╣рд▓реВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рдЬрд╣рд╛рдВ рдереНрд░реВрдкреБрдЯ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

  • ASP.NET Core рд╕реЗ Json.NET рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рдХрд╛рд▓реЗрдВ ред рдЖрдЬ, ASP.NET Core рдХреА Json.NET рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ ASP.NET Core рдФрд░ Json.NET рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдЦреНрдд рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдпрд╣ рдирд╣реАрдВ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХрд┐рд╕ JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ Json.NET рдХреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрд╕реНрдХрд░рдг рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, Json.NET рдХреЛ рдЕрдХреНрд╕рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдХреНрд╕рд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рдпрд╛ рдХрд░рдирд╛ рднреА рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо ASP.NET Core 3.0 рд╕реЗ Json.NET рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдпрд╣ рдЪреБрди рд╕рдХреЗрдВ рдХрд┐ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдмрд┐рдирд╛ рдЗрд╕ рдбрд░ рдХреЗ рдХрд┐ рд╡реЗ рдЧрд▓рддреА рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рддреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдкреНрд▓рдЧ-рдЗрди рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

  • Json.NET рдХреЗ рд▓рд┐рдП ASP.NET рдХреЛрд░ рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ ред Json.NET рдореВрд▓ рд░реВрдк рд╕реЗ .NET рдореЗрдВ JSON рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд╛ рд╕реНрд╡рд┐рд╕ рдЖрд░реНрдореА рдЪрд╛рдХреВ рдмрди рдЧрдпрд╛ рд╣реИред рдпрд╣ рдХрдИ рд╡рд┐рдХрд▓реНрдк рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЕрдкрдиреА JSON рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдЖрдЬ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдорд┐рд▓ рд░рд╣реЗ Json.NET рд╕рдорд░реНрдерди рд╕реЗ рд╕рдордЭреМрддрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, AddJsonOptions рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ JSON рдХреНрд░рдорд╛рдВрдХрди рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо Json.NET рдПрдХреАрдХрд░рдг рдХреЛ рдПрдХ NuGet рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЖрдЬ Json.NET рд╕реЗ рдорд┐рд▓рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рдШрдВрдЯрд┐рдпрд╛рдБ рдФрд░ рд╕реАрдЯреА рдорд┐рд▓реЗрдВред рдЗрд╕ рдХрд╛рд░реНрдп рдЖрдЗрдЯрдо рдХрд╛ рджреВрд╕рд░рд╛ рднрд╛рдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд╣реА рд╡рд┐рд╕реНрддрд╛рд░ рдмрд┐рдВрджреБ рд╣реИрдВ рддрд╛рдХрд┐ рдЕрдиреНрдп рдкрдХреНрд╖ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреА JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХреЗрдВред

рдиреАрдЪреЗ рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рджреА рдЧрдИ рд╣реИред

рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди JSON API рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛

.NET рдХреЛрд░ рдХреЗ рдЖрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ .NET рд╕реНрдЯреИрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдереЛрдбрд╝реА рдмрджрд▓ рдЧрдИ рд╣реИрдВред рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ, .NET рдиреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдорд╣рддреНрд╡ рджрд┐рдпрд╛ рд╣реИред .NET рдХреЛрд░ рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рд╣рдордиреЗ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд┐рд╡реЗрд╢ рдХрд┐рдпрд╛ рд╣реИред рдФрд░ рд╣рдордиреЗ рд▓реЛрдХрдкреНрд░рд┐рдп TechEmpower рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рдЬреЛ

.NET Core 2.1 рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдПрдХ рдирдпрд╛ рдЖрджрд┐рдо рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕реНрдкреИрди рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЛ рд╣рдореЗрдВ рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рджреЗрд╢реА рдореЗрдореЛрд░реА рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде, рд╣рдордиреЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдФрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рд╕реЗрдЯ рднреА рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬреЛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдХреЛрдб рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓рд┐рдП рдмрд┐рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдореЗрдореЛрд░реА рдХреБрд╢рд▓ рд╣реИрдВред

рдЖрд╡рдВрдЯрди рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдХрд╛рдо рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдпреВрдЯреАрдПрдл -8 рдкреЗрд▓реЛрдб рдХреЛ рдпреВрдЯреАрдПрдл -16 рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдореЗрдВ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдирд╛ рд╣реИ, рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд╛рд░рдгреЛрдВ рд╕реЗред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, Json.NET рдХреЛ UTF-16 рдкрдврд╝рдХрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдореЗрдВ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рд╕реАрдзреЗ UTF-8 рдореЗрдВ рдкрдврд╝рдиреЗ (рдФрд░ рд▓рд┐рдЦрдиреЗ) рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (HTTP рд╕рд╣рд┐рдд) UTF-8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

.NET рдХреЛрд░ 2.1 рдХреЗ рджреМрд░рд╛рди рд╣рдордиреЗ рд╕реАрдЦрд╛ рд╣реИ рдХрд┐ Span<T> рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдореМрдЬреВрджрд╛ рдПрдкреАрдЖрдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рд╕реАрдорд╛рдПрдВ рд╣реИрдВред рдЬрдмрдХрд┐ рд╣рдордиреЗ рд╕реНрдкреИрди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдУрд╡рд░рд▓реЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЬреЛрдбрд╝рд╛ рдерд╛, рд╣рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдирдП рдПрдкреАрдЖрдИ рднреА рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдереЗ рдЬреЛ рдЖрд╡рдВрдЯрди рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдмрдлрд░ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдордиреЗ System.Buffers рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ рдерд╛ред рдФрд░ System.IO.Pipelines рд╣рдордиреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЙрдбрд▓ рднреА рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрдЬреАрд╡рди рдореБрджреНрджреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдмрдлрд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред

рдЗрди рдЕрдиреБрднрд╡реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ JSON рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ JSON API рдХреЗ рдПрдХ рдирдП рд╕реЗрдЯ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо Span<T> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ JSON рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл Json.NET рдХреЛ рдЕрдкрдбреЗрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдареАрдХ рд╣реИ, рдЬреЗрдореНрд╕ рдиреНрдпреВрдЯрди-рдХрд┐рдВрдЧ - Json.NET рдХреЗ рд▓реЗрдЦрдХ - рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:

Json.NET 10 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рддрдм рд╕реЗ рдЗрд╕рдиреЗ .NET рдореЗрдВ JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реИред рдЙрд╕ рд╕рдордп рдореЗрдВ Json.NET рднреА NuGet рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдирд┐рд░реНрднрд░ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреИрдХреЗрдЬ рдмрди рдЧрдпрд╛ рд╣реИ, рдФрд░ .NET рдореЗрдВ JSON рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЧреЛ-рдЯреВ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Json.NET рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛ рдЦрдЬрд╛рдирд╛ рдЗрд╕рдореЗрдВ рдмрдбрд╝реЗ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред Span<T> рдЬреИрд╕реА рдирдИ рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдореВрд▓рднреВрдд рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдФрд░ рдореМрдЬреВрджрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред

рдЖрдЧреЗ рдЬрд╛рдХрд░ Json.NET рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдФрд░ рдирд┐рд╡реЗрд╢ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛, рджреЛрдиреЛрдВ рдЖрдЬ рдЬреНрдЮрд╛рдд рдореБрджреНрджреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдирдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВрдЧреЗред Json.NET рд╣рдореЗрд╢рд╛ .NET рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп JSON рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдирдП JSON API рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ Json.NET рдХреЗ рдмрдбрд╝реЗ рдлреАрдЪрд░ рд╕реЗрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдкрдХреЛ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХрд╛ рдПрдХ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

Json.NET рдПрдХреАрдХрд░рдг рдХреЛ рдПрдХ рдЕрд▓рдЧ NuGet рдкреИрдХреЗрдЬ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдБ

рдЖрдЬ, рдЖрдк Json.NET рдХреЗ рдмрд┐рдирд╛ ASP.NET Core рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ ASP.NET Core рдХреА рд╣реА рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рд╡рд░реНрд╖реЛрдВ рд╕реЗ, рд╣рдореЗрдВ рдлреАрдбрдмреИрдХ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░ рд╕рдХрддреА рд╣реИ рдЬрд┐рдирдХреА Json.NET рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЕрдкрдиреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рдЕрддреАрдд рдореЗрдВ, рд╣рдордиреЗ ASP.NET рдореЗрдВ Json.NET рдХреА рдПрдХ рдирд┐рдЬреА рдкреНрд░рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдХрд░реЗрдЧрд╛ рдЬрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ Json.NET рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ JSON рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реНрд╡рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддрд╛ рд╣реИ)ред

рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП рд╣рдо рдЪрд╛рд╣реЗрдВрдЧреЗ:

  1. ASP.NET рдХреЛрд░ рдореЗрдВ Json.NET рдХреЗ рдЖрдВрддрд░рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЛ рдирдП рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо-рдкреНрд░рджрддреНрдд JSON API рд╕реЗ рдмрджрд▓реЗрдВред

  2. Json.NET рдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЛ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬрд┐рд╕реЗ NuGet рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП ASP.NET Core рдФрд░ Json.NET рдХреЗ рдмреАрдЪ рдореМрдЬреВрджрд╛ рдПрдХреАрдХрд░рдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реЗ рдмрд╛рд╣рд░ рдФрд░ рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреВрдВрдХрд┐ рдПрдХреАрдХрд░рдг рддрдм рдордВрдЪ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмреИрдардиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ Json.NET рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд┐рди рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡реЗ рдирдП JSON API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ, Json.NET рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рдореГрджреНрдз рд╕реБрд╡рд┐рдзрд╛ рд╕реЗрдЯ рдХреА рдХреАрдордд рдкрд░ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕ рдирдП рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд JSON рд╕рд╛рдордЧреНрд░реА рдЬреИрд╕реЗ appSettings.json , рдХреНрдпрд╛ рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдзрдиреНрдпрд╡рд╛рджред

рд╕рднреА 193 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рднреА рдЦреВрдм рд░рд╣реАред рдореИрдВ рдЬреЗрд╕рди рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЛ рддреЗрдЬ рдФрд░ рдХрдо рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реВрдВред

рдХреНрдпрд╛ json.net рдХреА рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рд╣реЛрдЧреА рдЬрд┐рдирдХрд╛ рд╕рдорд░реНрдерди рдирдпрд╛ json apis рдХрд░реЗрдЧрд╛? рдЕрдЧрд░ рд╡рд╣рд╛рдБ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рдЬреЛ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддреА рд╣реИрдВ, рд╡реЗ рдирд╛рдо рдмрджрд▓рдирд╛/рдЖрд╡рд░рдг рдХрд░рдирд╛ рдФрд░ рдЕрд╢рдХреНрдд рдЧреБрдгреЛрдВ рдХреА рдЕрдирджреЗрдЦреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ json.net рдХреА рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рд╣реЛрдЧреА рдЬрд┐рдирдХрд╛ рд╕рдорд░реНрдерди рдирдпрд╛ json apis рдХрд░реЗрдЧрд╛?

рд╣рд╛рдВред рд╣рдордиреЗ рдХреБрдЫ рд╢реБрд░реБрдЖрддреА рд╕реЛрдЪ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо CoreFx рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░реЗрдВрдЧреЗред рдпрд╣ рдПрдХ рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛрдЧреА рдЬрд┐рд╕реЗ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЦреБрд▓реЗ рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдФрд░ рдирд┐рд░реНрдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓реЗрдЦрдХреЛрдВ рддрдХ рдкрд╣реБрдВрдЪрд╛ рд╣реВрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдШреЛрд╖рдгрд╛ рдХреЗ рд╢реБрд░реБрдЖрддреА рдбреНрд░рд╛рдлреНрдЯ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореЗрд░реА рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╣рдо рдордВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдареЛрд╕ JSON рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЗрд╕рдХреЗ рдКрдкрд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ (рдЬреИрд╕реЗ ASP.NET рдХреЛрд░) рдХреЛ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд░рдЦрддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рдХреНрд╖реНрдп рд╣реЛрдВрдЧреЗ рдФрд░ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдкреНрд▓рдЧ-рдЗрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рдШрдЯрдХ рдХреЛ рдЪреБрдирдиреЗ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд▓рдЪреАрд▓рд╛рдкрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рдРрдк рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо рд▓рд╛рдЧрдд/рд▓рд╛рдн рд╣реИред

рдЕрд░реЗ @terrajobstред рдХреНрдпрд╛ рдирдпрд╛ JSON рдиреЗрдЯрд╕реНрдЯреИрдВрдбрд░реНрдб рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдпрд╛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреЛрд░ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реЛрдЧрд╛?

рдЕрд░реЗ @terrajobstред рдХреНрдпрд╛ рдирдпрд╛ JSON рдиреЗрдЯрд╕реНрдЯреИрдВрдбрд░реНрдб рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛, рдпрд╛ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХреЛрд░ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реЛрдЧрд╛?

рд╣рд╛рдВ, рд╕рд╡рд╛рд▓ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдХреМрди рд╕реА рд░рд┐рд▓реАрдЬ рдЯреНрд░реЗрди рдкрдХрдбрд╝ рд╕рдХрддреА рд╣реИред 2.1 рдмрд╣реБрдд рдЬрд▓реНрджреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рддреЛ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдмреЗрдХ рдХрд┐рдП рдЧрдП JSON рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдмрд┐рдЯреНрд╕ рдХреЛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ рдЬрдм v3.0 RTM рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдХреЗрд╡рд▓ ASP.NET рдХреЛрд░ рдореЗрдВ рдПрдХреАрдХрд░рдг рдПрдкрд┐рд╕ рдкреВрд░рд╛ рд╣реЛрдЧрд╛ (рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде - JSON.NET) рдЬреЛ рдПрдХ рдкрд░ рд╕реНрд╡реИрдкреЗрдмрд▓ рд╣реЛрдЧрд╛ рдмрд╛рдж рдХреА рддрд┐рдерд┐?

3.0 рдХреА рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  1. рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди JSON APIsред рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рдкрд╛рдардХ/рд▓реЗрдЦрдХ, рдПрдХ Stream рдЖрдзрд╛рд░рд┐рдд рдкрд╛рдардХ/рд▓реЗрдЦрдХ, рдФрд░ рдПрдХ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХред
  2. ASP.NET Core JSON рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп wrt рд╣реИред

рдПрдХ рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрди рд╣реИ рдХрд┐ 3.0 рдореЗрдВ ASP.NET рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдирд┐рд╖реНрдард╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо 3.0 рддрдХ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╣рдо рдЙрдиреНрд╣реЗрдВ Json.NET рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдореЗрдВ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд▓рдХреНрд╖реНрдп рдкрд░реНрдпрд╛рдкреНрдд рдирд┐рд╖реНрдард╛ рдФрд░ рд╕рдорд╛рдирддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд▓реЛрдЧреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж - рдЗрд╕рд╕реЗ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓рддреА рд╣реИред рдореИрдВ

рдФрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╢реНрди!

рдпрджрд┐ рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрдкреВрд░реНрдг ASP.NET рдХреЛрд░ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдпрд╛ рдХреЗрд╡рд▓ рдХреБрдЫ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Kestrel рд╣рдореЗрд╢рд╛ рдЖрдВрддрд░рд┐рдХ рдкрд╛рдардХреЛрдВ/рд▓реЗрдЦрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рдХреНрдпрд╛ рдПрдкреА рдПрд░реНрдЧреЛрдиреЙрдорд┐рдХреНрд╕ рд╣реЛрдЧрд╛:

  • рдПрдХреАрдХрд░рдг рдХреА рдЖрдкреВрд░реНрддрд┐ рддрднреА рдХрд░реЗрдВ рдЬрдм рдЖрдк рдмрд┐рд▓реНрдЯ-рдЗрди рд╕реБрд╡рд┐рдзрд╛ рд╕реЗрдЯ рдХреЛ рдмрдврд╝рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • рд╣рдореЗрд╢рд╛ рдПрдХ рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░реЗрдВ рд▓реЗрдХрд┐рди рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реЛрдЧрд╛, рдирд┐рдореНрди рд╕реНрддрд░ рдХреЗ рдкрд╛рдардХ/рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ред

рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЗрд╕ рдирдП рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рднреА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд JSON рд╕рд╛рдордЧреНрд░реА рдЬреИрд╕реЗ appSettings.json , рдХреНрдпрд╛ рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣ рдХрдорд╛рд▓ рдХреА рдЦрдмрд░ рд╣реИ! рддреНрд╡рд░рд┐рдд рдкреНрд░рд╢реНрди: рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд┐рди рдкреИрдХреЗрдЬреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛?

рдЙрддреНрдкрд╛рджрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдкрд╣рд┐рдпреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдХреНрдпреЛрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдП? рдЕрдЧрд░ Json.Net рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рдмрд╕ рдПрдХ рдкреАрдЖрд░ рднреЗрдЬреЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Json.NET рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ Microsoft рдХреЗ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдУрд╣, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА System.Runtime.Serialization рдореЗрдВ рдПрдХ рд╣реИ, рдЬрд┐рд╕реЗ DataContractJsonSerializer рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдирдП рдПрдкреАрдЖрдИ, DIY рдХреЛ рдХреЛрдб рдХрд░рдирд╛ рдЗрддрдирд╛ рдордЬреЗрджрд╛рд░ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЯрд╛рд▓рд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕рд╕реЗ рдмрд╣реБрдд рдЦреБрд╢ рдирд╣реАрдВ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ Json.Net рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ рдПрдл # рдбрд┐рд╕реНрдХреНрд░рд┐рдорд┐рдиреЗрдЯреЗрдб рдпреВрдирд┐рдпрдиред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрддрд░ рдкрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХреЛрдИ рднреА рдирдпрд╛ рдПрдкреАрдЖрдИ рдЖрдорддреМрд░ рдкрд░ ASP.NET-рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рднреА рднреВрд▓ рдЬрд╛рддрд╛ рд╣реИред

@markrendle рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП JsonReader (рдХрд╛рд░реНрдп рдкреНрд░рдЧрддрд┐ рдкрд░ рд╣реИ) рдкрд░ рдПрдХ рдСрдкреНрдЯ-рдЗрди рд╕реЗрдЯрд┐рдВрдЧ рд╣реИред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдЧрд╛ред

@ рдереЛрд░рд┐рдпрдо рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдУрдкреА рдкрдврд╝рд╛ рдерд╛? рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ JSON.NET рдХреНрдпреЛрдВ рдирд╣реАрдВ, рдФрд░ JSON.NET рдХреЛ рдРрдб-рдЗрди рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдирд╛ рдЬрд╛рд░реА рд░рд╣реЗрдЧрд╛ред

@JamesNK

@ рдереЛрд░рд┐рдпрдо Json.NET рджреВрд░ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЖрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреЛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╕рд░рд▓ рдФрд░ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред

@ рдереЛрд░рд┐рдпрдо Json.NET рджреВрд░ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЖрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рдЦреЛ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд╕рд░рд▓ рдФрд░ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИред

рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ Json рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП?

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ Json.NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЕрдм, рдХреНрдпрд╛ рдореЗрд░реА F# рднреЗрджрднрд╛рд╡ рд╡рд╛рд▓реА рдпреВрдирд┐рдпрдиреЗрдВ рд╕рдорд╛рди рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреНрд░рдордмрджреНрдз рд╣реЛрдВрдЧреА рддрд╛рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреА рд╡рд░реНрддрдорд╛рди рд╕рд┐рдЧреНрдирд▓рдЖрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд░рдирдЯрд╛рдЗрдо рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдлреЗрдВрдХрдиреЗ рд╡рд╛рд▓реА рдирдИ Azure рд╕рд┐рдЧреНрдирд▓ рд╕реЗрд╡рд╛ (рдмреИрдХрдкреНрд▓реЗрди) рдХреЗ рд╕рд╛рде рдореБрджреНрджреЛрдВ рд╕реЗ рдирд╣реАрдВ рд▓рдбрд╝реВрдВрдЧрд╛?

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рдирдП рдПрдкреАрдЖрдИ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рдЙрдард╛рдПрдВрдЧреЗред рдЖрдкрдХреЛ рджреЗрдЦрдХрд░, @AzureCosmosDB ;-)

рдХреНрдпрд╛ рдЖрдк рдЬреЙрдмреНрдЬреЗрдХреНрдЯ рдЬреИрд╕реА рдХрдХреНрд╖рд╛ рдФрд░ рдбрд╛рдпрдирд╛рдорд┐рдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдпрд╣ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ?

рдореИрдВ рдЗрд╕ libs рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ:

рдпрд╣ рдкреНрд░реЗрд░рдгрд╛ рдкрд╛рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ DataContractJsonSerializer рдЗрд╕ рдирдП рдкрд╛рдардХ/рд▓реЗрдЦрдХ рдХрд╛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?

рдореИрдВ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рдкрд╛рд╕ рдкрд╣реБрдВрдЪрд╛ рд╣реВрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдШреЛрд╖рдгрд╛ рдХреЗ рд╢реБрд░реБрдЖрддреА рдбреНрд░рд╛рдлреНрдЯ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореЗрд░реА рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╣рдо рдордВрдЪ рдХреЗ рд▓рд┐рдП рдПрдХ рдареЛрд╕ JSON рдШрдЯрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдЗрд╕рдХреЗ рдКрдкрд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ (рдЬреИрд╕реЗ ASP.NET рдХреЛрд░) рдХреЛ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд░рдЦрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдХреЛрдИ рдХрд╛рд░рдг рд╣реИ рдХрд┐ JSON.NET рдХреЗ рдмрд╛рдж рджреВрд╕рд░реА рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА - ServiceStack.Text рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╢рд╣рдж рдХреА рдордХреНрдЦреА рдмрд╣рд┐рд╖реНрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? ServiceStack.Text serializers рдХрд╛ рдЙрдкрдпреЛрдЧ ServiceStack рдХреЛ рд╢рдХреНрддрд┐ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп "рд╡реИрдХрд▓реНрдкрд┐рдХ .NET рдХреЛрд░ рд╕рдВрдЧрдд рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ" рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ .NET рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЪрд▓рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ ред рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕ "рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░" рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ "рдПрдХ рд╕рд╛рде рдХрд╛рдо" рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдХрд┐ рдпреЗ "рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рдПрдкреАрдЖрдИ рдХрд┐рддрдиреЗ рд╕рдВрдЧрдд рд╣реИрдВ рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдФрд░ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд╣рд╛рдВ рдирдП рдПрдордПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдФрд░ рдПрдХреАрдХрд░рдг рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХ рддрдВрддреНрд░ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдПрдордЖрдИрдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди https://github.com/neuecc/Utf8Json рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рд▓рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП ... рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡, рдмрд╕ " Json " рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

@terrajobst рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдРрд╕рд╛ рдХрдм рд╣реЛрдЧрд╛ ...

рдореИрдВ рд╣рдореЗрд╢рд╛ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ JSON.Net рдХреЛ рдПрдХ рдЕрдореВрд░реНрддрддрд╛ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддреНрдпрдХреНрд╖ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрдпреЛрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдпрд╣ .Net рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ JSON рдкреИрдХреЗрдЬ рд╣реИ)ред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ JSON рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдореВрд░реНрдд рдЬреЛрдбрд╝рдирд╛-рдХреЗрд╡рд▓ рдХрд┐рд╕реА рддрд░рд╣ рдЖрдкрдХреЗ рдкреИрд░реЛрдВ рдкрд░ рдПрдХ рд╢реВрдЯ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдСрд░рд▓рд┐рдпрдиреНрд╕ IExternalSerializer рдореЗрдВ Microsoft.Extensions.Serialization рдЖрдХрд╛рд░ рдореЗрдВ рдПрдХ _serializer_ рдЕрдореВрд░реНрддрддрд╛ рд╣реИ рдпрд╛ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡реА рд╣реЛрдЧрд╛ ...

рдХреНрдпрд╛ JSON-only рдмрдирд╛рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░рдг рд╣реИ? рдореИрдВ рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рд▓реЛрдЧ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХреЛрдВ рдХреЛ рдкреНрд▓рдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...

@galvesribeiro IOutputFormatter / IInputFormatter рдЬреИрд╕рд╛ рдХреБрдЫ?

@ yaakov-h рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрд╡рдЧрдд рдирд╣реАрдВ рдерд╛ ... рдХреНрдпрд╛ рд╡реЗ рд╣реИрдВ?

рдареАрдХ рд╣реИ ... рдЕрдм рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рддреЛ рдпрд╣ _new_ JSON-only рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдХрд╣рд╛рдВ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ?

рдЗрд╕ рдЙрдкрдХреНрд░рдо рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рднреА System.String (UTF-16 String) рдХреА рдЕрдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд╕реАрдпрддрдирд╛рдорд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдпрд╛ JSON рд╣реБрдХ рдЬреЛ рдПрдПрд╕рдкреАрдиреЗрдЯ рдФрд░ рдПрдХ рдЬреЗрд╕рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмреАрдЪ рд╕рднреА рдЬреЗрд╕рди рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рдХрд░реЗрдЧрд╛, рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рдпреВрдЯреАрдПрдл -8 рд╕реНрдЯреНрд░рд┐рдВрдЧ рдмреЗрд╕рдЯрд╛рдЗрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╕реЗ рдирд┐рдкрдЯрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдХрд╛рдлреА рдмреЗрд╣рддрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
-> рд╢рд╛рдпрдж рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдПрдВред Utf8String

рд╣рд╛рдБ... рдореБрдЭреЗ рдпрд╛рдж рд╣реИ @migueldeicaza рдиреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдХрд┐рд╕реА рджрд┐рди, рд╡рд╣ .Net рдХреЛ utf8 рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛

@jges42 @galvesribeiro Utf8String рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ https://github.com/dotnet/corefx/issues/30503 рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ .Net Core 3.0 рдХреЗ рд▓рд┐рдП рднреА рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИред

рдХреНрдпрд╛ рдЗрди рдирдП JSON API рдореЗрдВ Utf8String рдФрд░ char / string рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдХреЛрдб рдкрде рд╣реЛрдВрдЧреЗ, рдпрд╛ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ рдпрдерд╛рд╕реНрдерд┐рддрд┐ рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рддрд╛рдХрд┐ рд╡рд╣ рд╕рдм рдХреБрдЫ рдЬреЛ UTF-8 рдирд╣реАрдВ рд╣реИ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ рдЯреНрд░рд╛рдВрд╕рдХреЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛? (рдЗрд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдПрдХ рдмрдбрд╝реА рд▓рд╛рдЧрдд рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рдХреБрдЫ рднреА string рдХрд╛ рдореВрд▓ UCS-2 UTF-16 рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрднреА рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд/рд▓реЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рдореИрдВ рдмрд╕ рдЗрд╕рдХрд╛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдПрдкреАрдЖрдИ рд╕рддрд╣ред Kestrel рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ; рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдбрд┐рдЬрд╛рдЗрди Kestrel рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдорд╛рдирддрд╛ рд╣реИред)

@galvesribeiro
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рдЙрдард╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдХреБрд╢рд▓ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрдирд╛рдирд╛ рдФрд░ рдПрдХ рдХреБрд╢рд▓ рдЬреЗрд╕рди рдбрд┐рдХреЛрдбрд░/рдПрдирдХреЛрдбрд░ рджреЛ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рд╕рдВрд░рдЪрдирд╛ рдХреЛ Serializable рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрднреА рднреА рдХрд┐рд╕реА рднреА рдЬреЗрд╕рди рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рд░рд╕реНрдЯ рдХреА рд╕реЗрд░реНрдбреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ 2 рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдХреЗ рдПрдХ рдЕрдЪреНрдЫреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ:

  1. Serialize/Deserialize (C# рдореЗрдВ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рдорд╛рди рд▓рдХреНрд╖рдг) рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдкреНрд░рдХрд╛рд░ рдХреНрд░рдордмрджреНрдз/deserialized рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
  2. Serializer/Deserializer рдкреНрд░рд╛рд░реВрдк рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

рдПрдХ рдкреНрд░рдХрд╛рд░ рдпрд╛ рддреЛ рд╣рд╛рде рд╕реЗ рдпрд╛ рдореИрдХреНрд░реЛ (рдЬрд┐рд╕реЗ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдкреНрд▓рдЧрдЗрди рдХреЗ рдХреБрдЫ рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ) рджреНрд╡рд╛рд░рд╛ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬ/рдбрд┐рд╕реЗрд░рд┐рдпрд▓рд╛рдЗрдЬ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрди рд▓рдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдПрдХ рдмрдЪреНрдЪрд╛ рдкреНрд░рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЙрди рд▓рдХреНрд╖рдгреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╕рдВрдХрд▓рди рд╕рдордп рдкрд░ рднреА рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЧрд╛ред рдпрд╣ рд╕рдордЧреНрд░ рд░реВрдк рд╕реЗ рдПрдХ рдЕрдЪреНрдЫреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рдбреЗрдЯрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдорд░реНрдерд┐рдд рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП (рдбреА) рдХреНрд░рдордмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдкреНрд░рд╛рд░реВрдк рд▓рд┐рдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╕рд░реНрдбреЗ рдХреЗ рддрд░реАрдХреЗ рд╕рднреА рд╕реА # рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдкреЗрд╢рдХрд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдУрдЯреА рд╕рдВрдХрд▓рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдХреБрдЫ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ (рдбрдмреНрд▓реНрдпреВрдПрдПрд╕рдПрдо) рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдЧрд╛, рдЗрд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрдбреЗ рдбреЙрдХреНрд╕ рдХрд╛ рд▓рд┐рдВрдХ рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдХреЗ 4 рд▓рдХреНрд╖рдгреЛрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ):
https://docs.serde.rs

@mythz ServiceStack.Text рдХрд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреБрдЫ FOSS рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде AGPL рд╣реИ - рдпрд╣ рд╢рд╛рдпрдж рд▓реЛрдЧреЛрдВ рдХреЛ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЫреВрдиреЗ рдХреЗ рд▓рд┐рдП Microsoft рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдиреВрдиреА рд╕реЗ рдордВрдЬреВрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕реА рднреА рдХрд░реНрдордЪрд╛рд░реА рдиреЗ рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦрд╛ рд╣реИ, рдЙрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рддрдХрдиреАрдХ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@ poizan42 ServiceStack.Text рджреЛрд╣рд░реЗ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рд╕рд╛рде OSS/рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рд▓рд╛рдЗрд╕реЗрдВрд╕ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде OSS рдФрд░ рдмрдВрдж рд╕реНрд░реЛрдд рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рджреЛрдиреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рд▓реЗрдХрд┐рди рд╕реНрд░реЛрдд рдХреЛрдб рд▓рд╛рдЗрд╕реЗрдВрд╕ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдПрдордПрд╕ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред

рджрд╛рд╡рд╛ рдпрд╣ рдерд╛ рдХрд┐ рдПрдордПрд╕ "рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рдЬреЗрдПрд╕рдУрдПрди рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рдПрдкреАрдЖрдИ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░" рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ - рдпрджрд┐ рд╕рд░реНрд╡рд┐рд╕рд╕реНрдЯреИрдХ рд▓рдЧрднрдЧ рдПрдХ рджрд╢рдХ рдореЗрдВ рд╕рдХреНрд░рд┐рдп рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рд╕реНрд╡рддрдВрддреНрд░ .NET рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реВрдЯреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рд╣реИ рдЕрдкрдиреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдореЗрдВ рдПрдордПрд╕ рдХреЗ рдмрд╛рд╣рд░ рдЦреБрдж рдХрд╛ рд╕реНрд╡рддрдВрддреНрд░ рд╕реНрд╡рд╕реНрде рд╕рдореБрджрд╛рдп, рдЬреЛ JSON.NET рдХреЗ рдмрд╛рдж рджреВрд╕рд░рд╛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп JSON рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рджреВрд╕рд░рд╛ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ (рдПрдордПрд╕ рдХреЗ рдмрд╛рд╣рд░) рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рдПрдордПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рд╡реЗрдм рдврд╛рдВрдЪреЗ рдХреЛ "рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░" рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЗрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИ, рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рд╡реЗ рдХрд┐рд╕ "рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░" рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдХреНрдпреЛрдВ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХрд┐рддрдиреЗ рдЕрдиреНрдп рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╣реИрдВ "рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░" рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рд╕рдм рдЖрдХреНрд░реЛрд╢ рдирд╣реАрдВ рд╕рдордЭрддрд╛ред Asp.net рдиреЗ рдЖрдкрдХреЛ json.net рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ред рд╡реЗ рдЗрд╕реЗ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдЬреЛ рднреА JSON рдкрд╛рд░реНрд╕рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдЪреБрди рд╕рдХреЗрдВ (рдпрд╛ рдЗрд╕реЗ рдорд┐рд▓рд╛рдПрдВ), рдФрд░ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдУрдУрдмреА рд╣реИред рд╕рд░реНрд╡рд┐рд╕рд╕реНрдЯреИрдХ рдХреЛ рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреБрд╢ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд░реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдПрдХ рдЕрдЪреНрдЫреА рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рднрд╛рд╡рдирд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ рд╣реИред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ .net рдЯреАрдо рдХреЗ рдХрдИ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдХреЛрдИ рджреНрд╡реЗрд╖ рдирд╣реАрдВ рдерд╛ред рд╡реЗ рд╕рднреА рдУрдПрд╕рдПрд╕ рдФрд░ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдХрд╛рд░реНрдп рдХреЗ рдмрдбрд╝реЗ рд╕рдорд░реНрдердХ рд╣реИрдВред
рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдХреЛрдИ рднреА рдЬреАрдкреАрдПрд▓ рд╡реНрдпреБрддреНрдкрдиреНрди рд▓рд╛рдЗрд╕реЗрдВрд╕ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдЧреАред рдЕрдкрд╛рдЪреЗ рдпрд╛ рдПрдордЖрдИрдЯреА рдореЗрд░реЗ рдФрд░ рдореЗрд░реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╛ рд╣рдо рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред рдХреЛрдИ рд░рд╣рд╕реНрдпрдордп рджреЛрд╣рд░реА рд▓рд╛рдЗрд╕реЗрдВрд╕ рдирд╣реАрдВред

Asp.net рдиреЗ рдЖрдкрдХреЛ json.net рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛

рдирд╣реАрдВред рдРрд╕рд╛ рдХреИрд╕реЗ?

рдореИрдВ рдпрд╣ рд╕рдм рдЖрдХреНрд░реЛрд╢ рдирд╣реАрдВ рд╕рдордЭрддрд╛ред

рджреВрд╕рд░рд╛!

рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рд╣рдо рдЕрдВрддрддрдГ JSON.Net рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдХреЗрд╡рд▓ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЗрд╕реЗ рд╢рд┐рдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ ASP.Net рдХреЗ рдкрд╛рд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдард┐рди рд╕рдВрджрд░реНрдн рд╣реИред

(рдмреЗрд╢рд░реНрдо рдкреНрд▓рдЧ: https://github.com/gregsdennis/Manatee.Json)

@dotMorten

рдореИрдВ рдпрд╣ рд╕рдм рдЖрдХреНрд░реЛрд╢ рдирд╣реАрдВ рд╕рдордЭрддрд╛ред

рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдпрд╛ рддреЛ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рд╛ рдпрд╛ рд╕рдордЭрд╛ рдирд╣реАрдВ рд╣реИред рдЕрдкрдиреА рдЦреБрдж рдХреА рдХрд╣рд╛рдиреА рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ (рдЕрд░реНрдерд╛рдд рдЙрджреНрдзрд░рдг рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ)ред

рд╡реЗ рдЗрд╕реЗ рдмрджрд▓ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдЬреЛ рднреА JSON рдкрд╛рд░реНрд╕рд░ рдЪрд╛рд╣реЗрдВ рдЪреБрди рд╕рдХреЗрдВ (рдпрд╛ рдЗрд╕реЗ рдорд┐рд▓рд╛рдПрдВ)

рддреЛ рдПрдХ рдЬрд╛рджреВ "рдорд┐рд╢реНрд░рдг" рдХреА рддрд░рд╣, рд╡реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рдПрдкреАрдЖрдИ рдФрд░ рдкреНрд▓рдЧреЗрдмрд┐рд▓рд┐рдЯреА рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВрдЧреЗ рдЬреЛ рдореМрдЬреВрджрд╛ .NET рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╕реАрдзреЗ рдкреНрд▓рдЧ рдЗрди/рдЖрдЙрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рддрд╛рд░-рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдорд┐рд╢реНрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣реА рдФрд░ рд╕рдм рдХреБрдЫ рд╕рднреА рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдПрдкреАрдЖрдИ рдХреЗ рдареЛрд╕ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рд╕рд╣рдпреЛрдЧ рдпрд╛ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╛ рд╢рд╛рдпрдж рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рднрд┐рдиреНрди рдорддрднреЗрджреЛрдВ рдФрд░ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рдмрд╛рд░реАрдХ рд╣реИрдВ рдФрд░ рд╕рдм рдХреБрдЫ рд╕рд┐рд░реНрдл рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИ, рд╕рднреА рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдк рдмрд┐рд▓реНрдХреБрд▓ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╛рдпрд░-рдкреНрд░рд╛рд░реВрдк рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмреАрдЪ рд╕рд╣реА рдЗрдВрдЯрд░рдСрдкред рдЖрдк рдЬрд┐рд╕ "рдкреНрд▓рдЧрдмрд┐рд▓рд┐рдЯреА" рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓ рд░рд╣реЗ рд╣реИрдВ, рд╡рд╣ рдПрдХ рдмрдбрд╝рд╛ рдЕрдВрддрд░ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рддрдирд╛ рдкреБрдирд░реНрд▓реЗрдЦрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдореМрдЬреВрджрд╛ рдФрд░ рдЗрд╕ рдирдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдпрд╛ рдирд╣реАрдВред

рд╕рд░реНрд╡рд┐рд╕рд╕реНрдЯреИрдХ рдХреЛ рдЗрд╕ рдмрджрд▓рд╛рд╡ рд╕реЗ рдЦреБрд╢ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рдлреАрдбрдмреИрдХ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП,

рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрд╡рд╕рд░ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛ рдЕрднреА рднреА рдкрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХрд┐ рдореБрдЭреЗ рдХреИрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреА рддрд╛рдХрдд рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛, рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдФрд░ рд╕рдВрдЧрддрддрд╛ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдФрд░ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЕрдВрддрдГрдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рд╕реЗ рдЕрд╕рдВрдЧрддрддрд╛рдУрдВ рдФрд░ рдХреЛрдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реИред рдореЗрд░реА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдпрд╣ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ JSON.NET рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рдСрдк рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдирдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд▓рдХреНрд╖реНрдп рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рдЗрд╕рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХреИрд╕реЗ рдХреА рдЧрдИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЗрд╡рд▓ рд░реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЬреЛ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдПрдХ рдЕрдЪреНрдЫреА рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рднрд╛рд╡рдирд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ рд╣реИред

рдореИрдВ рдЙрдирдХреЗ рджрд╛рд╡реЗ рдХреЛ рдЪреБрдиреМрддреА рджреЗ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ "рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░" рдХреЗ рд╕рд╣рдпреЛрдЧ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИ, .NET рдХрд╛ рдореМрдЬреВрджрд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рд╣рд░ рдмрд╛рд░ "рдбрд┐рдлрд╝реЙрд▓реНрдЯ" рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдмрдВрдбрд▓ рдХрд░рдиреЗ рдХрд╛ рдЗрддрд┐рд╣рд╛рд╕ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рдореИрдВ рднреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрд╣рд╛рдВ (рдореИрдВ рдПрдХ рдРрд╕реЗ рд╕рдордп рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдмрдВрдбрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдХрднреА рдорджрдж рдорд┐рд▓реА рд╣реИ)ред рд▓реЗрдХрд┐рди рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рд╣рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рд╡реЗ рдЬрд╛рд░реА рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреЗ рд╕рд╛рде рд╕рд╣рдЬ рдПрдХреАрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдкреАрдЖрдИ рдХреЗ рдЬрдореЗ рд╣реБрдП рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХреНрд╕реЗрд╕ рдФрд░ рдЗрдирдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╣реИ, рдореИрдВ рдЖрдкрд╕реЗ рдЗрд╕ рдмрд╛рдд рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░рддрд╛ рдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рдврд╛рдВрдЪреЗ/рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдореМрдЬреВрджрд╛ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк рдХреЗрд╡рд▓ рддрднреА рдЪрд┐рдВрддрд┐рдд рд╣реИрдВ рдЬрдм JSON.NET рд╕рдорд░реНрдерд┐рдд рд░рд╣рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдЖрдкрдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрдиреА рдзрд╛рд░рдгрд╛рдУрдВ рдкрд░ рдкрдХрдбрд╝ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЕрд╡рд╢реЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕рд╛ рдорд╣рд╕реВрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдРрд╕реЗ рд╕рдордп рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдмрдВрдбрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдХрднреА рдорджрдж рдорд┐рд▓реА рд╣реИ

рдУрд╣ рдЕрдм рдЫреЛрдбрд╝рд┐рдП рднреА!

(рдмрд╛рдХреА рдореЗрдВ рдореИрдВ рдЕрдзрд┐рдХрддрд░ рдЖрдкрдХреА рднрд╛рд╡рдирд╛рдУрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдБ)

@mythz рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг

рдореЗрд░реА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдпрд╣ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ JSON.NET рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рдСрдк рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдирдХрд╛ рдбрд┐рдЬрд╝рд╛рдЗрди рд▓рдХреНрд╖реНрдп рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреНрдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рднрд╛рдЧреНрдпрд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред

рдореИрдВ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЬреЛ рд╣рдо рд╢рд┐рдк рдХрд░реЗрдВрдЧреЗ рд╡рд╣ JSON.NET рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд░рдЧрдо тАЛтАЛтАЛтАЛрдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдЪ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрдо рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ (рдкреНрд░рджрд░реНрд╢рди рдФрд░ рджрд╛рдпрд░реЗ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг)ред

рдкреНрд▓рдЧреИрдмрд┐рд▓рд┐рдЯреА рдЬреНрдпрд╛рджрд╛рддрд░ рдЖрдЬ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣рд░ рдЬрдЧрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ JSON.NET рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЙрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдирдпрд╛ JSON рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓ рд░рд╣рд╛ рд╣реИ ...

@abatishchev

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдХреЛ рднреА рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЬрдм рдЙрдирдХреЗ рдЖрдзрд╛рд░ рдврд╛рдВрдЪреЗ (рдпрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ) рдореЗрдВ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдПрдореНрдмреЗрдб рдпрд╛ рдЕрдкрдирд╛рдиреЗ рд╕реЗ рдореМрдЬреВрджрд╛ рдЖрд╕рдкрд╛рд╕ рдХреЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рд▓рд╛рдн рд╣реБрдЖ рд╣реЛ? рд╣рд░ рдмрд╛рд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдВрдбрд▓ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдиреБрдЧреЗрдЯ, рдПрдорд╡реАрд╕реА, рдУрдЖрд░рдПрдо, рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯрд┐рдВрдЧ, рд╡реЗрдм рдПрдкреАрдЖрдИ, рдЖрджрд┐ рдЗрд╕рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рд╛ рд╣реИ, рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЙрд╕ рд╕реНрдерд╛рди рдХреЗ рднреАрддрд░ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХреЗ рд▓рд┐рдП рдСрдХреНрд╕реАрдЬрди рдФрд░ рдкреНрд░реЗрд░рдгрд╛ рд▓реЗ рд░рд╣рд╛ рд╣реИред

рдРрд╕реЗ рд╕рдордп рд╣реЛрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ ASP.NET Ajax рдЬреИрд╕реЗ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдФрд░ jQuery рдХреЛ рдЕрдкрдирд╛рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рд╕рдордп рдпрд╛рдж рдирд╣реАрдВ рд╣реИ рдЬрд╣рд╛рдВ рдЗрд╕рдиреЗ рдХрднреА рдорджрдж рдХреА рд╣реЛ? рдиреЛрдЯ: рдпрд╣ рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж .NET рдХрд╛ рдмрд╛рд░реАрдХреА рд╕реЗ рдЕрдиреБрд╕рд░рдг рдХрд░рдиреЗ рдХрд╛ рдореЗрд░рд╛ рдЕрд╡рд▓реЛрдХрди рд╣реИ, рд╢рд╛рдпрдж рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЙрддреНрд╕реБрдХрддрд╛ рд╣реЛрдЧреА? рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкреАрдУрд╡реА рд╕реЗ рдПрдордПрд╕ рдбрд┐рдлреЙрд▓реНрдЯ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдореМрдЬреВрджрд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдкрд░ рдПрдХ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рдкреНрд░рднрд╛рд╡ рдкрдбрд╝рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдмрджрд▓ рд░рд╣рд╛ рд╣реИред

Microsoft рджреНрд╡рд╛рд░рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП @mythz рд▓рд╛рдн рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рднреЛрдВ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред EF .NET рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ ORM рд╣реИ рдФрд░ MSTest рдЙрд╕ рд╕рдордп NUnit рд╕реЗ рдмреЗрд╣рддрд░ рдерд╛ред рдореЗрд░реА рд░рд╛рдп рдореЗрдВред

рд▓реЗрдХрд┐рди рдЖрдЗрдП рдмрд╛рдврд╝ рди рдХрд░реЗрдВ рдФрд░ рд╡рд┐рд╖рдп рдкрд░ рдЯрд┐рдХреЗ рд░рд╣реЗрдВред рдЪреАрдпрд░реНрд╕!

@davidfowl рдпрд╣ рд╕рд┐рд░реНрдл рдЙрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рдирдпрд╛ JSON

рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдХреНрдпрд╛ рдЗрд╕реЗ рдврд╛рдВрдЪреЗ рдпрд╛ рдХреБрдЫ рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдмреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рдорд▓рд╛ рд╣реИ)?

рдореИрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдХреНрдпрд╛ рдЗрд╕реЗ рдврд╛рдВрдЪреЗ рдпрд╛ рдХреБрдЫ рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдмреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдорд╛рдорд▓рд╛ рд╣реИ)?

рдпрд╣ рдЕрдиреБрдЪрд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрднрд╡ рд╕рдмрдкрд░ рд╣реЛрдЧрд╛ред рд╣рд░ рдЖрдзреБрдирд┐рдХ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ JSON рдмрд┐рд▓реНрдЯ рдЗрди рд╣реЛрддрд╛ рд╣реИред

@davidfowl рдЕрдм рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрднреА рднреА рдЙрд╕ рд╡реНрдпрд╡рдзрд╛рди рдФрд░ рдХрд╛рд░реНрдп рдХреЗ рджрд╛рдпрд░реЗ рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдЗрд╕реЗ рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдХреНрдпрд╛ рд╣рдо рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдХреНрдпрд╛ рд╣рдо рдирдП рдЕрдиреБрдХреВрд▓рди рдореЙрдбрд▓ рдФрд░ рдПрдкреАрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдХреНрдпрд╛ рд╣рдо рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди/рд╡рд╛рдпрд░-рдкреНрд░рд╛рд░реВрдк рдирдП рдПрдкреАрдЖрдИ .NET рдХреЛрд░ рдФрд░ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ - рдЬрдмрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ ASP.NET Core 3 .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдирдП API рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред NET рдХреЛрд░ рдХреЗрд╡рд▓ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ .NET рдХреЛрд░ рдФрд░ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХреЗрдВрдЧреЗред

рдореИрдВ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЬреЛ рд╣рдо рд╢рд┐рдк рдХрд░реЗрдВрдЧреЗ рд╡рд╣ JSON.NET рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд░рдЧрдо тАЛтАЛтАЛтАЛрдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдЪ рдирд╣реАрдВ рд╣реИ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрдо рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ (рдкреНрд░рджрд░реНрд╢рди рдФрд░ рджрд╛рдпрд░реЗ рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рдХрд╛рд░рдг)ред

рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ JSON.NET рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рдмрд╕реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП JSON.NET рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд╛рдпрд░-рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛? (рдореИрдВ рд╣рд╛рдБ рдорд╛рди рд░рд╣рд╛ рд╣реВрдБ)ред рдХреНрдпрд╛ рдирдпрд╛ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ рд╡рд╣рд╛рдВ JSON.NET рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЛ рдЕрдкрдирд╛рдПрдЧрд╛ (рд╣рд╛рдВ рдорд╛рдирддреЗ рд╣реБрдП рднреА)ред

рдЗрд╕реЗ рдирд┐рд░реНрдмрд╛рдз рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдХреНрдпрд╛ рд╣рдо рдЕрдкрдиреЗ рдореМрдЬреВрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдирд┐рд╣рд┐рддрд╛рд░реНрде рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдХреНрдпрд╛ рд╣рдо рдирдП рдЕрдиреБрдХреВрд▓рди рдореЙрдбрд▓ рдФрд░ рдПрдкреАрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдХреНрдпрд╛ рд╣рдо рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди/рд╡рд╛рдпрд░-рдкреНрд░рд╛рд░реВрдк рдирдП рдПрдкреАрдЖрдИ .NET рдХреЛрд░ рдФрд░ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

@mythz рдореИрдВ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореМрдЬреВрджрд╛ рдПрдкреАрдЖрдИ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдЙрдкрднреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рд╢рд╛рдпрдж рд╣рдо рдХреБрдЫ рдареЛрд╕ рдкрд░рд┐рджреГрд╢реНрдп рджреЗрдЦ рд╕рдХреЗрдВ?

@mythz рдХреБрдЫ рд╣рдж рддрдХ рдПрдХрдорд╛рддреНрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд┐рдВрддрд╛ рд╣реИ рдЬреЛ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ , рдпрджрд┐ рдпрд╣ рдирдпрд╛ рдПрдкреАрдЖрдИ .net рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдкрд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕ рддрд░рд╣

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдпрд╣ рдЕрдкрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ рдФрд░ рдЬрд┐рд╕ рд▓рдХреНрд╖реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рд╡рд╣ рдХрд╛рдлреА рдЖрд╢рд╛рдЬрдирдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдУрдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рд╣рдореЗрд╢рд╛ рдЕрдЪреНрдЫреА рд╣реЛрддреА рд╣реИред

Microsoft рджреНрд╡рд╛рд░рд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП @mythz рд▓рд╛рдн рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рднреЛрдВ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИред

рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдореИрдВ рдЖрд╕рдкрд╛рд╕ рдХреЗ .NET рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░/рд╕рдореБрджрд╛рдпреЛрдВ рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдЬреЛ рд╕рдВрднрд╡рддрдГ рдУрдкреА рдореЗрдВ "рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░" рдХрд╛ рднреА рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ) рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рднреА рддрд░реНрдХ рджреВрдВрдЧрд╛ред рдиреЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА рд╕реНрд╡рд╕реНрде рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХ рддрдВрддреНрд░ рд╕реЗ рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдкрд╛рдпрдерди, рдЬрд╛рд╡рд╛, рдиреЛрдб, рд░реВрдмреА, рдкреАрдПрдЪрдкреА, рдЖрджрд┐ рдЬреИрд╕реЗ рд╕реНрд╡рд╕реНрде рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХ рддрдВрддреНрд░ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ)ред

EF .NET рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ ORM рд╣реИ

рдИрдПрдл рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдпрд╣ рдЬрд▓реНрджреА рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдУрдЖрд░рдПрдо рдорд╛рд░реНрдХреЗрдЯрд╢реЗрдпрд░ рд▓реЗ рд▓рд┐рдпрд╛, рдЬрдмрдХрд┐ 2012 рдЗрдиреНрдлреЛрдХреНрдпреВ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рд╕реЗ рдЕрдВрд╢:

рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдУрдЖрд░рдПрдо рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рд▓реЗрдпрд░ рдкрд░ рдЙрдирдХреЗ рдирд╡реАрдирддрдо рдкреНрд░рдпрд╛рд╕ рдиреЗ рдкрд╣рд▓реЗ рдХреЗ рдкреНрд░рдореБрдЦ рдУрдЖрд░рдПрдо рдПрдирдПрдЪрдмреЗрд░реНрдиреЗрдЯ рдХреЗ рдПрдХ рдмрд╛рд░ рд╕рдВрдкрдиреНрди рд╕рдореБрджрд╛рдп рдХреЛ рднреА рдирдХрд╛рд░рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╣рд░ рджреВрд╕рд░реЗ рдУрдкрди рд╕реЛрд░реНрд╕ .NET ORM рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рдзреАрдореА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд╡рдЬреВрдж, EF рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдЕрдиреНрдп рд╕рднреА

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рдкреВрд░реНрд╡ .NET рдХреЛрд░ рдерд╛ рдЬрд╣рд╛рдВ рдкреНрд░рджрд░реНрд╢рди рдЕрдм рд╕рд░реНрд╡реЛрдЪреНрдЪ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдПрдХ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдПрдордПрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореМрдЬреВрджрд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХ рддрдВрддреНрд░/рд╕рдореБрджрд╛рдпреЛрдВ рдкрд░ рд╣реИред рдЖрдИрдПрдордУ рдпрд╣ рдХрд╛рдлреА рд╣рдж рддрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореМрдЬреВрджрд╛ рд╕рдореБрджрд╛рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдПрдордПрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╢рд┐рдкрд┐рдВрдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗ рд╡рд╛рдкрд╕ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рдФрд░ рдСрдЯреЛрдореИрдкрд░ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рддрд╛ рд╣реИред

рдФрд░ MSTest рдЙрд╕ рджрд┐рди NUnit рд╕реЗ рдмреЗрд╣рддрд░ рдерд╛ред

рдЖрдИрдПрдордУ рдпрд╣ рдХрднреА рдирд╣реАрдВ рдерд╛ (рдФрд░ рдПрдирдпреВрдиреАрдЯ рдХрд╛ рдЖрд░ # рд╕рдорд░реНрдерди рд╣рдореЗрд╢рд╛ рдЙрддреНрдХреГрд╖реНрдЯ рдПрдПрдлрдПрдЖрдИрд╕реАрдЖрд░ рд░рд╣рд╛ рд╣реИ) рдФрд░ рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдореЛрдиреЛ рдкрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдореЛрдиреЛ рдкрд░ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (рдиреЗрдЯ рдХреЛрд░ рд╕реЗ рдкрд╣рд▓реЗ) рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХреЗ рдпрд╣ред

рд▓реЗрдХрд┐рди рдЖрдЗрдП рдмрд╛рдврд╝ рди рдХрд░реЗрдВ рдФрд░ рд╡рд┐рд╖рдп рдкрд░ рдЯрд┐рдХреЗ рд░рд╣реЗрдВред рдЪреАрдпрд░реНрд╕!

рдореИрдВ рдЗрд╕ рдкрд░ рднреА рдЗрд╕ рдзрд╛рдЧреЗ рдХреЛ рд╣рд╛рдИрдЬреИрдХ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдореИрдВ рдЖрдкрдХреА рдмрд╛рддреЛрдВ рд╕реЗ рдЕрд╕рд╣рдордд рдХреНрдпреЛрдВ рд╣реВрдВред

рдЗрд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, JSON.NET рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░рдг рдкреНрд░рджрд░реНрд╢рди рд╣реИ рдФрд░ рдЗрд╕ рдирдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХрд╛ рдХрд╛рд░рдг рдкреНрд░рджрд░реНрд╢рди рд╣реИред рдЪреВрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ JSON.NET рд╢реЗрдпрд░ рдкрд░ рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рднрд╛рд╡ рд╣реЛрдЧрд╛, рдЬрдмрдХрд┐ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░рдг рдЕрдм рдЗрд╕ рддреЗрдЬрд╝ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП рдореВрд▓ рд░реВрдк рд╕реЗ рдореИрдВ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ (рдкреБрд╕реНрддрдХрд╛рд▓рдп) рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдкрд░ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рдкреНрд░рднрд╛рд╡ рднреА рджреЗрдЦрддрд╛ рд╣реВрдВред IMO JSON libs рдХрд╛ рдПрдХ рдХрдордЬреЛрд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ .NET рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реБрджреНрдз рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ (рдРрд╕рд╛ рдХреБрдЫ рдирд╣реАрдВ рдЬреЛ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрднреЛрдХреНрддрд╛ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдПрдВрдЧреЗ), рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ рд╣реИред

@davidfowl @shahid-pk

рдЗрд╕рдХреЗ рдмрд╛рд╡рдЬреВрдж рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рдХрд┐ рдпрд╣ 8 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рд╕рд░реНрд╡рд┐рд╕рд╕реНрдЯреИрдХ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкреНрд░рд╛рдердорд┐рдХ рдХрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдерд╛ред рдЯреЗрдХреНрд╕реНрдЯ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ .NET Framework JSON рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдмреЗрд╣рдж рдзреАрдореЗ рдереЗред рд▓реЗрдХрд┐рди рд╕рднреА рдЗрд╕ рд╕рдордп рдХреЗ рдмрд╛рдж SS.Text рд╕рднреА рднрд░ рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╣рдорд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреИрд╕реЗ рдЕрдиреБрдХреВрд▓рди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдмрдврд╝рд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд┐рднрд┐рдиреНрди рднрд╛рд╖рд╛рдУрдВ ServiceStack рд╕рдорд░реНрдерди , рд╡рд┐рднрд┐рдиреНрди ServiceStack рдореЗрдВ JSON рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдк , рдореЗрдВ JSON рд╕рдорд░реНрдерди ServiceStack рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ , рдореЗрдВ рдкрд░рд┐рд╕рд░ рдкреНрд░рдХрд╛рд░ JSON рдмреНрд▓реЙрдм рд╕рдорд░реНрдерди ServiceStack рд░реЗрдбрд┐рд╕ рдЖрджрд┐

рддреЛ рдЕрдм рдореИрдВ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЖрдХрд▓рди рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рднрд╛рд╡ рдХреНрдпрд╛ рд╣реЛрдЧрд╛, рдирдпрд╛ рдПрдкреАрдЖрдИ рдФрд░ рдкреНрд▓рдЧреЗрдмрд┐рд▓рд┐рдЯреА рд╡рд┐рдХрд▓реНрдк рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛, рдХреНрдпрд╛ рд╣рдо рдореМрдЬреВрджрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЙрд╕ рдкрд░ рд╡рд╛рдкрд╕ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рд╣рдо рдПрд╕рдПрд╕ рдореЗрдВ рдЬреЗрдПрд╕рдУрдПрди рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдиреЗрдЯ рдХреЛрд░ рдРрдкреНрд╕ (рдпрд╣ рдХреНрдпрд╛ рддреЛрдбрд╝ рджреЗрдЧрд╛), рдХреНрдпрд╛ рд╕рд░реНрд╡рд┐рд╕рд╕реНрдЯреИрдХред рдЯреЗрдХреНрд╕реНрдЯ рдирдП рдПрдкреАрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдХреНрдпрд╛ рд╣рдо .NET v4.5 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдХреНрдпрд╛ рдпрд╣ рдореМрдЬреВрджрд╛ рддреИрдирд╛рддреА рдХреЗ рд╡рд╛рдпрд░-рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛, рдЖрджрд┐ред I рдореВрд▓ рд░реВрдк рд╕реЗ рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рднреА рдкреНрд░рднрд╛рд╡ рдпрд╛ рдЖрдЧреЗ рдХреА рд░рдгрдиреАрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЕрднреА рддрдХ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпрд╛ рджреЗрдЦрдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдЬрдм рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓реЗрдЧрд╛ рддреЛ рдореБрдЭреЗ рдФрд░ рдЙрддреНрддрд░ рдкрддрд╛ рдЪрд▓реЗрдВрдЧреЗ рдФрд░ рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХреАрдХрд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдФрд░ рдПрдкреАрдЖрдИ рдХреЗ рдЬрдордиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

@mythz

- рд╡рд╣рд╛рдБ рдПрдХ рдХрд╛рд░рдг рд╣реИ рдХрд┐ 2 рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп JSON рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рдж JSON.NET рд╣реИ ServiceStack.Text рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ рд╕реНрдкреИрди рдПрдкреАрдЖрдИ рдкрд░ рдирд┐рд░реНрдорд┐рдд рд╣реЛрдиреЗ рдХреА рдкреБрдирд░реНрд╕рдВрд╢реЛрдзрд┐рдд рджрд┐рдпрд╛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ?

рдЪреВрдХ рдЬрд╛рдирдмреВрдЭрдХрд░ рдирд╣реАрдВ рдереАред рд╣рдордиреЗ CoreFxLab рд░реЗрдкреЛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЦреЛрдЬ рдФрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдПрдХ NuGet рдкрд░ "json" рдЬреИрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдЦреЛрдЬ рд╢рдмреНрджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ

рдореИрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЖрдк рдХрд┐рд╕ "рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░" рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ "рдПрдХ рд╕рд╛рде рдХрд╛рдо" рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

.NET рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ JSON рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдкрдХреНрд╖ред

рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреА рдХрд┐ рдпреЗ "рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рдПрдкреАрдЖрдИ рдХрд┐рддрдиреЗ рд╕рдВрдЧрдд рд╣реИрдВ рдпрд╛ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдФрд░ рдХреНрд╖реЗрддреНрд░ рд╣реИ рдЬрд╣рд╛рдВ рдирдП рдПрдордПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдФрд░ рдПрдХреАрдХрд░рдг рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХ рддрдВрддреНрд░ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред

рдирд┐рдпреЛрдЬрд┐рдд ASP.NET рдХреЛрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреЙрдЗрдВрдЯреНрд╕ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЬреЛ рднреА JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЪрд╛рд╣рд┐рдП, рдЙрд╕рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдЯ-рдЗрди JSON рдШрдЯрдХ рдХреЛ рдмрджрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдмрдирд╛рдирд╛ рд╣реИред рдмреЗрд╢рдХ, ASP.NET рдиреЗ рд╣рдореЗрд╢рд╛ "рдмреИрдЯрд░реА рд╢рд╛рдорд┐рд▓", рдпрд╛рдиреА рдПрдХ рдЙрдЪрд┐рдд рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдиреБрднрд╡ рдХреЗ рд╕рд╛рде рднреЗрдЬ рджрд┐рдпрд╛ рд╣реИред рдЕрддреАрдд рдореЗрдВ рдпрд╣ Json.NET рд░рд╣рд╛ рд╣реИ рдФрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП рдпрд╣ рдПрдХ рдордВрдЪ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдШрдЯрдХ рд╣реИред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ Json.NET ASP.NET рдореЗрдВ рдХреБрдЫ рд╣рдж рддрдХ рдХрдареЛрд░ рдерд╛, рдирдИ рдпреЛрдЬрдирд╛ рдЖрдкрдХреЗ рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдиреЗрдЯ-рд╡рд╛рд░ рдмреЗрд╣рддрд░ рд▓рдЧрддреА рд╣реИ; рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдХрд╛ рдХреМрди рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЦрддрд░рд╛ рд╣реИред

рдПрдХ рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрди рд╣реИ рдХрд┐ 3.0 рдореЗрдВ ASP.NET рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдХреНрдпрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдореЙрдбреНрдпреВрд▓рд░ рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП vue.js рд▓реЗрдВред

image

рдПрдХ рдирдпрд╛ Vue рдРрдк рдмрдирд╛рдиреЗ рд╕реЗ рдЖрдк рдЕрдкрдиреА рдордирдЪрд╛рд╣реА рдЪреАрдЬрд╝реЗрдВ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред рд╕рднреА рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 500 рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдПрд╕рдкреАрдиреЗрдЯ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдРрд╕рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ .ASP NET Core 2.2 рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдареЛрд╕ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдБ рдЧреИрд░-JSON.NET JSON рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ рдлреЙрд░реНрдореЗрдЯрд░реНрд╕ рдХреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ рдФрд░ рдПрдХ рдбрд┐рдХреЙрдЙрд▓реНрдб рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
рд╕рдорд╕реНрдпрд╛ рд╡рд┐рд╡рд░рдг рд╕реБрд╡рд┐рдзрд╛, рдЬреЛ RFC 7807 рд╕рдВрдЧрдд рддреНрд░реБрдЯрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ:
https://github.com/aspnet/Mvc/blob/release/2.2/src/Microsoft.AspNetCore.Mvc.Core/ProblemDetails.cs

[JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "instance")]
public string Instance { get; set; }

[JsonExtensionData]
public IDictionary<string, object> Extensions { get; } = new Dictionary<string, object>(StringComparer.Ordinal);

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб JSON.NET рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдлрд╝реЙрд▓рдмреИрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ [JsonExtensionData] , рд╕рднреА рдЕрдЬреНрдЮрд╛рдд JSON рдЧреБрдг рдЗрд╕ рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ deserialized рд╣реИрдВ рдФрд░ рдЗрд╕ рд╢рдмреНрджрдХреЛрд╢ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд╛рдорд╛рдиреНрдп JSON рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХрд┐рд╕реА рднреА рд╡реИрдХрд▓реНрдкрд┐рдХ JSON рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдХреЛ рдЕрдм рдЗрди JSON.NET рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдареАрдХ рд╕реЗ рдХреНрд░рдордмрджреНрдз/deserialize рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рдпрд╛ рдПрдХ рдЕрд▓рдЧ рддрд░реАрдХрд╛ рдвреВрдВрдв рд╕рдХреЗрдВ, рдпрд╛рдиреА рдЗрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП JSON.NET рдкрд░ рдлреЙрд▓рдмреИрдХред

рдЕрдм, рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рддреЛ JSON рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдирдкреБрдЯ/рдЖрдЙрдЯрдкреБрдЯрдлреЙрд░реНрдореЗрдЯрд░ рдХреЛ 3.0 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ Microsoft.Extension... рдкреИрдХреЗрдЬ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрд╕реНрдЯрдо JSON рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдореЗрдВ рд░рд╣ рд╕рдХрддреА рд╣реИрдВред рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрдиреБрд╕рд╛рд░, ASP.NET рдХреЛрд░ рдореЗрдВ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ" рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдХреЗрд╡рд▓ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ рдЬреЛ JSON.NET рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдПрдиреЛрдЯреЗрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ JSON.NET рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ (рдЖрдорддреМрд░ рдкрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рднреА рджреЗрдЦрд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо [JsonProperty("name")]

FWIW, рдпрд╣реА https://github.com/Tornhoof/SpanJson/issues/63 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

@terrajobst рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдерд╛ рдЬреЛ рдЖрдИрдПрдордУ рдореЗрд░реА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

рд╣рдо рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдХрд╣рд╛ рдкреЗ? рдХреНрдпрд╛ рдХреЛрдИ рдПрдкреАрдЖрдИ рдкреНрд░рд╕реНрддрд╛рд╡/рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ, рдХреНрдпрд╛ рдПрдХ рдПрдкреАрдЖрдИ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рдХрд┐рд╕ рд░реЗрдкреЛ рдХреЗ рддрд╣рдд рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдерд╛ рдЬреЛ рдЖрдИрдПрдордУ рдореЗрд░реА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдФрд░ рд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрдврд╝ рд▓рд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдиреЗ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ @davidfowl рдиреЗ рд╕рдордЭрд╛рдпрд╛, рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдХрд╣рдирд╛ рдерд╛ рдХрд┐ рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рд╣реИ, рдЙрд╕рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реИ, рдпрд╛рдиреА Json.NET рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╣рд╛рд░реНрдб-рд╡рд╛рдпрд░рд┐рдВрдЧред рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдкреНрд░рд╢реНрдиред

рдХрд╣рд╛ рдкреЗ? рдХреНрдпрд╛ рдХреЛрдИ рдПрдкреАрдЖрдИ рдкреНрд░рд╕реНрддрд╛рд╡/рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ, рдХреНрдпрд╛ рдПрдХ рдПрдкреАрдЖрдИ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рдХрд┐рд╕ рд░реЗрдкреЛ рдХреЗ рддрд╣рдд рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

рд╣рдордиреЗ рдЬрд╛рдирдмреВрдЭ рдХрд░ .NET рдХреЛрд░ рдореЗрдВ рдЕрднреА рддрдХ рдХреЛрдИ рдХреЛрдбрд┐рдВрдЧ/рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рдпрд╣ рдШреЛрд╖рдгрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рд▓реЛрдЧ рдЗрд╕ рдШреЛрд╖рдгрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕рдВрджрд░реНрдн рдХреЛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рдЪрд╛рдп рдХреА рдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝реЗрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рджреЗрдЦрддреЗ рд░рд╣реЗрдВ, рд╣рдо рдЬрд▓реНрдж рд╣реА рдПрдкреАрдЖрдИ рдФрд░ рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред

@terrajobst рдЙрд╕ рдкреЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрдкреВрд░реНрдг рдкреНрд░рднрд╛рд╡

  1. рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реБрдП, рд╣рдо рдЕрдкрдиреЗ JSON рд╕рдорд░реНрдерди рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ:

  1. рдХреБрдЫ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
    рд╣рдореЗрдВ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реЗ JSON API рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
    ASP.NET рдХреЛрд░ рд╕реЗ Json.NET рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рдХрд╛рд▓реЗрдВред
    Json.NET рдХреЗ рд▓рд┐рдП ASP.NET рдХреЛрд░ рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдпрд╣ рд╕рдм рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рджрд┐рд╢рд╛ рд▓реА рдЬрд╛рддреА рд╣реИред "рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░" рд╕реЗ рдЬреЛ рдХреБрдЫ рднреА рдкреВрдЫрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡рд╣ рд╕реНрдкрд╖реНрдЯ рджрд░реНрдж рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рдирдХрд╛ рдПрдордПрд╕ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд┐рд╕рд╛рдм рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред

рд╕рд░реНрд╡рд┐рд╕рд╕реНрдЯреИрдХ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдФрд░ рдЗрд╕реЗ рдХреБрдЫ рд╕реЗрдХреЗрдВрдбрд░реА-рдХреНрд▓рд╛рд╕ .NET рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдордПрд╕ рд╢рд┐рдк рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рд╣реВрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдПрдордПрд╕ рдХреЗ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рд╕реАрдзреЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд▓рд┐рдП рдЧрдП рдирд┐рд░реНрдгрдпреЛрдВ рдкрд░ "рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛" рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдпрд╣реА рдореЗрд░реА рдзрд╛рд░рдгрд╛ рд╣реИ

@terrajobst

рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрдврд╝ рд▓рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдиреЗ рдХрд╛ рд╡рд┐рд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ

рдХрднреА рд╕реБрдЭрд╛рд╡ рдирд╣реАрдВ рджрд┐рдпрд╛ рдХрд┐, JSON.NET рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдерд╛ред рдореИрдВрдиреЗ рдКрдкрд░ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдФрд░ рдирдпрд╛ рдбрд┐рдлреИрдХреНрдЯреЛ рдорд╛рдирдХ рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ .NET рдХреЛрд░ рдХреЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХреЗрд╡рд▓ 2 JSON рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╣реЛрдВрдЧреЗ: рдпрд╣ рдирдпрд╛ рдбрд┐рдлреИрдХреНрдЯреЛ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдФрд░ JSONред рдХрд╕реНрдЯрдо рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдиреЗрдЯред рдЕрдиреНрдп JSON serializers рдЖрд▓рд╛ рдмрдирдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреВрдареА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдордиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХреЛрдИ рдХреЛрдбрд┐рдВрдЧ/рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╝рд╛рдЗрди .NET рдХреЛрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рдпрд╣ рдШреЛрд╖рдгрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗред

рдареАрдХ рд╣реИ рддреЛ рдХрд┐рд╕реА рднреА "рдмрд╛рд╣рд░реА" рдХреЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд▓рдЧреЗрдмрд┐рд▓рд┐рдЯреА, рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдпрд╛ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рд╣реИ
рдЕрднреА рддрдХ рд╣реЛрдЧрд╛ред

рд╣рдо рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рд▓реЛрдЧ рдЗрд╕ рдШреЛрд╖рдгрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╕рдВрджрд░реНрдн рдХреЛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рдЪрд╛рдп рдХреА рдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝реЗрдВред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рджреЗрдЦрддреЗ рд░рд╣реЗрдВ, рд╣рдо рдЬрд▓реНрдж рд╣реА рдПрдкреАрдЖрдИ рдФрд░ рдХреЛрдб рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред

рддреЛ рдЗрд╕реЗ рддрдм рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕реЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдХрд┐рддрдиреЗ рд╕рдордп рдмрд╛рдж рдмрд╛рд╣рд░реА рд▓реЛрдЧреЛрдВ рдХреЛ рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкреНрд░рд╕реНрддрд╛рд╡ рджреЗрдирд╛ рд╣реЛрдЧрд╛? "рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рдФрд░ "рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓" рдПрдкреАрдЖрдИ рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХ рдЪрд┐рдВрддрд╛, рдХреНрдпрд╛ рд╣рдо "рдЕрдзрд┐рдЧреНрд░рд╣рдг" рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдФрд░ рд░реЗрдлрд░реА/рд╡реИрд▓реНрдпреВ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╡рд╛рдпрд░ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рд░рдЦреЗрдВрдЧреЗ? рдмрд┐рд▓реНрдЯ-рдЗрди рдЯрд╛рдЗрдкреНрд╕, рдПрдирдореНрд╕, рдмреВрд▓, рдЕрдиреНрдп рдЗрдВрдЯреНрд░рд┐рдирд┐рдХреНрд╕ рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЙрджрд╛рд╣рд░рдг рдХреЗ рддреМрд░ рдкрд░ рдпрд╣ "рд╣рд╛рдВ", "рдЪрд╛рд▓реВ", "1" рдЬреИрд╕реЗ рдЕрдиреНрдп рд▓реЛрдХрдкреНрд░рд┐рдп JSON рдорд╛рдиреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП bool рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдЧрд╛ред

рдЕрдиреНрдп рд╕рд╡рд╛рд▓:

  • рдХреНрдпрд╛ рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди (рдПрдХ рдЕрд▓рдЧ NuGet рдкреИрдХреЗрдЬ рдореЗрдВ) рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
  • рдХреНрдпрд╛ рдПрдкреАрдЖрдИ рдХрд╛ "рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп" рд╣рд┐рд╕реНрд╕рд╛ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдпрд╛ рдЗрд╕реЗ рдХрд╣реАрдВ рдФрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ Xamarin/UWP)
  • рдХреНрдпрд╛ рдпрд╣ .NET рдорд╛рдирдХ 2.0 рдпрд╛ .NET v4.5 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛?
  • рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдХреНрдпрд╛ рдПрдкреАрдЖрдИ .NET рдорд╛рдирдХ 2.0 рдпрд╛ .NET v4.5 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ?

@mythz
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ (рдореЗрд░реА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЕрдиреБрд╕рд╛рд░), рдкрд╛рдардХ/рд▓реЗрдЦрдХ рднрд╛рдЧ corefxlab (https://github.com/dotnet/corefxlab/tree/master/src/System.Text.JsonLab/System/Text/) рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Json) рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ corefxlab рдореЗрдВ рдХреЛрдИ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп API рдирд╣реАрдВ рд╣реИред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓/рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдПрдкреАрдЖрдИ рднрд╛рдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ .NET рдорд╛рдирдХ (рдпрд╛рдиреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЖрджрд┐) рд╣реЛрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред рдЗрд╕ рд╕рдордп corefxlab рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдп .NET рдорд╛рдирдХ 1.1 рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрджрд┐ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред

@mythz

рдЖрдк рдореЗрд░реЗ рдмрдпрд╛рдиреЛрдВ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ "рдЧреНрд▓рд╛рд╕ рдЖрдзрд╛ рдЦрд╛рд▓реА рд╣реИ"-рд╕рдВрджрд░реНрдн рдореЗрдВ рдбрд╛рд▓ рджреЗрддреЗ рд╣реИрдВред рдореИрдВ рд╕рдордЭ рдЧрдпрд╛, рдЖрдкрдХреЛ рд╕рдВрджреЗрд╣ рд╣реИред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдмрдЪрд╛рдПрдВ рдФрд░ рд╕рд╛рд░ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рдареЛрд╕ рдПрдкреАрдЖрдИ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред рдореБрдЭреЗ рдкреВрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдпреЛрдЬрдирд╛ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдмрд┐рдВрджреБ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧреАред

@terrajobst рд╕рдВрджреЗрд╣рд╛рд╕реНрдкрдж рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреНрд╖рдорддрд╛рдПрдВ рдХреНрдпрд╛ рд╣реИрдВ рдЬреЛ рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ (рдпрд╛ рд╡реЗ рд╕рднреА рдЕрднреА рднреА рдЯреАрдмреАрдбреА рд╣реИрдВ?) рдпрд╣ рдШреЛрд╖рдгрд╛ рд╣рдордореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдерд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп, рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рдФрд░ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рд╣реЛрдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд╣реИред рдХреНрдпрд╛ System.Text.JsonLab рд╡рд░реНрддрдорд╛рди рдкреНрд░рднрд╛рд╡ рд╣реИ? рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ .NET рдорд╛рдирдХ 2.0 рдФрд░ .NET v4.5 рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛?

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рд╡рд╛рд▓реЗ рдкреЗрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде 50 рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрджреНрдпрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░ рднреА рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдЧрддрддрд╛ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реЛрдЧреАред рдХреНрдпрд╛ рдмреЗрдореЗрд▓ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдпрдХрд╛рд░реА-рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ-рд╢реИрд▓реА рдореИрдкрд┐рдВрдЧ-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реЛрдЧрд╛?

рдпрд╣ рдмрд╛рддрдЪреАрдд рдХрд┐рдирд╛рд░реЗ рдкрд░ рд▓рдЧрддреА рд╣реИ, рдЪрд╛рд╣реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдирд╛рд░рд╛рдЬ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрд╕ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдмрдЪрд╛рд╡ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рдереЗ рдЬреЛ рдХреА рдЧрдИ рдереА рдпрд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рдереАред рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЪрд╛рд░реЛрдВ рдУрд░ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ! рдХреГрдкрдпрд╛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рд░рд╣рдиреЗ рджреЗрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрджрд▓рд╛рд╡ рдХреЗ рджреЛ рдХрд╛рд░рдг рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ .Net Core рдХреЗ рднреАрддрд░ рдирдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╣ рдорд╛рдирд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдПрдХ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рддреНрд░реБрдЯрд┐ рд╣реБрдИ рдереА рдЬрд┐рд╕рдореЗрдВ JSON.Net рдХреЗ рдХрдард┐рди рд╕рдВрджрд░реНрдн рд╢рд╛рдорд┐рд▓ рдереЗ, рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ .Net рдкрд░ рд░рд╣рддрд╛ рд╣реИред рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирдП, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд JSON рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рд╢реБрд░реВрдЖрдд рдЙрди рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдЪреАрдЬреЗрдВ рдЯреВрдЯ рдЬрд╛рдПрдВрдЧреА? рд╣рд╛рдВ! рдЗрд╕рд▓рд┐рдП рдШреЛрд╖рдгрд╛ рдкрд░ "рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬреЗрд╕" рд▓реЗрдмрд▓ рд╣реИред (рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рд▓реЗрдмрд▓ рдХреЛ рдпрд╣рд╛рдВ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред) рдФрд░ рдЪреВрдВрдХрд┐ рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрджрд▓рд╛рд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рднрд╛рд╡ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХреА рдЧрдИ рдереАред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдкреНрд░рднрд╛рд╡ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЬреЛ рд▓реЛрдЧреЛрдВ рдХреЛ JSON.Net рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рдПрдЧреАред

рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдФрд░ рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдмрд╛рддрдЪреАрдд рдЖрдЧреЗ рдмрдврд╝реЗред


@Tornhoof рдЖрдкрдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ, рдЕрдЧрд░ рдореИрдВ JSON.Net рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХреА рдЧрдИ рд╕рдВрдЧрддрддрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рднреА рд╕рдВрджрд░реНрдн рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рдкреНрд▓рдЧ-рдПрдВрдб-рдкреНрд▓реЗ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП , рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдврд╛рдВрдЪрд╛ (.рдиреЗрдЯ рдХреЛрд░) рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░реЗ рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЪреБрдиреЗ рдЧрдП рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЛ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдЬрдм рдореЗрд░рд╛ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╕рдорд╛рди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдиреЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбрд▓ рдХреНрд░рдорд╛рдВрдХрди рд╕реМрдВрдкрдиреЗ рдХреЛ рдЪреБрдиреЗ рдЧрдП JSON рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

@mythz рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЬреЛ рдХреБрдЫ рднреА рдореИрдВ рдЬрд╛рдирддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрд╛ рд╣реИ, рдЙрд╕рд╕реЗ рдЖрдкрдХреЛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдкреАрдЖрдИ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╕рдореАрдХреНрд╖рд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд╕реНрдерд┐рд░ рд░реВрдк рд╕реЗ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд▓рдВрдмрд╛ рдореМрдХрд╛ рдорд┐рд▓реЗрдЧрд╛ред рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рдЗрддрдиреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдЬреИрд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдерд╛ред

@gregsdennis
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ?
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рдореЗрдВ рдЬреЗрд╕рди рд╕рдВрдкрддреНрддрд┐ рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ, рдЙрдирдХреЗ рд╢реВрдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░/рдпрд╛ рдлрд╝реЙрд▓рдмреИрдХ/рдХреИрдЪ-рд╕рднреА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдмрджрд▓рдиреЗ рдФрд░ рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд╕рднреА рддреАрди рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдЬреЗрдПрд╕рдУрдПрди рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП .net рдХреЛрд░ 3.0 рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рдлрд┐рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреИрдХреЗрдЬ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЖрдкрдХреЗ рдЖрдВрддрд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдореЗрдВ рдореИрдк рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЛ рдкрд╕рдВрдж рдХрд░рддреА рд╣реИ рддреЛ рдЧреБрдгреЛрдВ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП [DataMember] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЬреИрд╕реЗ SpanJson рдХрд░рддрд╛ рд╣реИ) рдЖрдкрдХреЗ рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдХреЛ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдореИрдк рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдХреЛрдб рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдПрдХ рджреГрд╢реНрдп рднрд╛рдЧ рд╣реЛрддрд╛ рд╣реИред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЖрджрд░реНрд╢ рджреБрдирд┐рдпрд╛ рдпрд╣ рд╣реЛрдЧреА рдХрд┐ рдХреЛрдИ рднреА ASP.NET рдХреЛрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреНрд░рдорд╛рдВрдХрди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдЧреА, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрд╕рдВрднрд╡ рд╕реЗ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ RFC рдХреЛ рдХреБрдЫ рдирд╛рдордХрд░рдг рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред .

рдХрд┐рд╕реА рднреА рддрд░рд╣, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрди рд╕рд╛рдЭрд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдХрдИ рдЪрд░реНрдЪрд╛рдПрдВ рд╣реЛрдВрдЧреАред

рдирдП JSON рдкрд╛рд░реНрд╕рд░ рдореЗрдВ SIMD рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ RapidJSON рдореЗрдВ?

рд╕рдВрджрд░реНрдн: http://rapidjson.org/

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕реБрдЭрд╛рд╡ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ " рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬреЗрд╕" рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдФрд░ рд╕реБрдЪрд╛рд░реВ рдХрд░реЗрдВ, рдореИрдВ рд╕рд┐рд░реНрдл 3 рдкрд╛рд░реНрдЯреА рдХреЗ рдХрд╛рдореЛрдВ рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВ рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрдирдореЗрдВ рд╕реЗ рдПрдХ рдЕрдиреБрднрд╡ рдерд╛ рдЬрд╣рд╛рдВ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЛ рдЕрдЪрд╛рдирдХ рдпреВрдбрдмреНрд▓реНрдпреВрдкреА рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдиреЗрдЯ рджреЗрд╢реА рд░рд┐рд▓реАрдЬ рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдХрдВрдкрд╛рдЗрд▓рд░) )

рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдХреЛрдИ рднреА UWP рдРрдк рдорд╣реАрдиреЛрдВ рддрдХ рд░рд┐рд▓реАрдЬрд╝ рдореЛрдб рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЙрди рд╕рднреА рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдкрдбрд╝рд╛ рдЬреЛ 3rd рдкрд╛рд░реНрдЯреА libs рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рдереЗред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЙрди рдпреВрдбрдмреНрд▓реНрдпреВрдкреА рднрд╛рдЧреЛрдВ рдореЗрдВ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХреЛрдВ рдХреЛ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдкрд╛рд░реНрдЯреА рдореЗрдВ рдирд╣реАрдВ рдЖрдП рдФрд░ рдореБрдЭреЗ рдЬрд╣рд╛рдЬ рдкрд░ рдХреВрджрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдордПрд╕ рд╕рд╛рдордиреЗ рдЖрдпрд╛ рдФрд░ .net рдорд╛рдирдХ 2.1 рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдмрджреНрдз рд╣реИред рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЬрдореАрдиреА рд╕реНрддрд░ рдкрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ .net рдорд╛рдирдХ 2.1 рд╣реИ рдЬрд┐рд╕реЗ рд╢реБрд░реБрдЖрддреА рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рд╡рд┐рддрд░рд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рдорд╣реАрдиреЛрдВ рд▓рдЧреЗрдВрдЧреЗред

рдмрд┐рдВрджреБ рд╕рд░рд▓ рд╣реИ, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рдж рд╡рд┐рдШрдЯрдирдХрд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдереА рдЬрд┐рд╕рдХрд╛ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдкрд░рд┐рдгрд╛рдо рдереЗ рдФрд░ рдпрд╣ "рдЪрд┐рдХрдиреА" рдФрд░ рдШрд░реНрд╖рдг рд░рд╣рд┐рдд рдХреБрдЫ рднреА рдерд╛ред

рдирд┐рд╢реНрдЪрд┐рдд рддреМрд░ рдкрд░ рдпрд╣ рд╕рд╣реА рдХрджрдо рд╣реИред
рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ Json.Net рд╕рдВрджрд░реНрдн рдХреЛ рджреЗрдЦрдХрд░ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВред

@Tornhoof рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЕрд▓рдЧрд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЗрдВрдЯрд░рдлреЗрд╕ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рджрд╛рддрд╛ рдХреЛ рдиреЗрдЯ рдХреЛрд░ 3.0 рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛ рдЗрд╕рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрдВрдЯрд░рдлреЗрд╕ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдЙрдкрдпреЛрдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╢рд╛рдпрдж рдХреЗрд╡рд▓ Serialize() рдФрд░ Deserialize() рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдЬрд┐рддрдирд╛ рд╕рд░рд▓ред

рдЕрдиреНрдп рд╡рд┐рд╡рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ рдХрд╕реНрдЯрдо рдкреНрд░реЙрдкрд░реНрдЯреА рдХреБрдВрдЬреАрдпрди рддрдВрддреНрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╡рд░рдг рд╣реИ рдЬреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрд╕ рдиреЗ рдХрд╣рд╛, рдХрд╕реНрдЯрдо-рдХреБрдВрдЬреА рдЧреБрдгреЛрдВ рдХреА рдХреНрд╖рдорддрд╛ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд╕рдВрд╣рд┐рддрд╛рдмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@gregsdennis рд╣рд╛рдБ рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ IInput/OutputFormatter рдХреЛ рджреЗрдЦ рд░рд╣рд╛ рдерд╛, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ASP.NET рдХреЛрд░ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧреИрд░-JSON.NET рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВред
рд╡реИрд╕реЗ рднреА рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреА рдФрд░ @mythz рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рддреА рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдХреЛрдк рдкрд░рд┐рднрд╛рд╖рд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЬрд╛рдПрдЧреА рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ (рдореБрдЭреЗ рдбреАрдЖрдИ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЪрд╢реНрдорд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдпрд╛рдж рд╣реИрдВ)ред рдЗрд╕рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ рдХрд┐ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЛ рдЬрд▓реНрджреА рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПред

@ рдЯреЛрд░реНрдирд╣реЛрдл рд╕рд╣рдордд рд╣реБрдПред рд╡рд░реНрддрдорд╛рди рдлрд╝реЙрд░реНрдореЗрдЯрд░ рдЗрдВрдЯрд░рдлреЗрд╕ рд╕рд╛рдлрд╝ JSON.Net рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рдирд╣реАрдВ serializer рдкрд░ рд╣реА рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╡рд╕реНрддреБ рдкрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдВрдкреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА (рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╡рд╕реНрддреБ)ред

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╡рд┐рдХрд▓реНрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд╕реБрд╡рд┐рдзрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдкрдиреЗ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреЙрд░реНрдореЗрдЯрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдХрд▓реНрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рдирд┐рдЬреА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдерд╛ред рдЕрдЧрд░ рдореИрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЙрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рддрд╛рдХрд┐ рдЙрдирдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред

рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдм рд╣рдо рдЪреАрдЬреЗрдВ рдХреИрд╕реЗ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡рд┐рдХрд▓реНрдк рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рд╛рдорд╛рдиреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд╣реАрдВ рд╣реИред рдПрдорд╡реАрд╕реА рдореЗрдВ рдлреЙрд░реНрдореЗрдЯрд░реНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реИрдВред JsonResult рдореЗрдВ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рд╣реЛрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реАрдзреЗ JsonSerializationOptions (JSON.NET рдкреНрд░рдХрд╛рд░) рд▓реЗрддрд╛ рд╣реИред

рдореЗрдВ рднреА рдпрд╣реА рдмрд╛рдд рдХрд╣рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ред рд╣рдо JSON рд░реАрдбрд░/рд▓реЗрдЦрдХ/рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдореВрд░реНрдд рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ; рдлреНрд░реЗрдорд╡рд░реНрдХ рдпрд╛ рддреЛ рдЖрдИрдУ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ (рдЬреИрд╕реЗ Stream , TextReader ) рдореЗрдВ рдбреАрд▓ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдлреНрд░реЗрдорд╡рд░реНрдХ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ (рдЬреИрд╕реЗ ASP.NET рдХреЛрд░ рдлреЙрд░реНрдореЗрдЯрд░реНрд╕) рдореЗрдВ рдкреНрд▓рдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВред

рджрд░реНрдж рдмрд┐рдВрджреБрдУрдВ рдХреА рдмрд╛рдд рдХрд░рдирд╛: рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ (рдФрд░ рдореИрдВ рдмрд╣реБрдд рдХрдо рдЕрд▓реНрдкрд╕рдВрдЦреНрдпрдХ рдореЗрдВ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ) рдореИрдВ рдХрдИ JSON рдкрд╛рд░реНрд╕рд░реНрд╕ рдХреА рдвреАрд▓реА рдкреНрд░рдХреГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд┐рдд рд╣реВрдВред рдПрдХ рдорд╛рдирдХ (tm) рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд╛рд░реНрд╕рд░реНрд╕ рдиреЗ рдЙрджрд╛рд░ рд╣реЛрдирд╛ рдЪреБрдирд╛ рдФрд░ рдЧреИрд░-рдЕрдиреБрд░реВрдкрддрд╛ рд╡рд╛рд▓реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдХреНрдпрд╛ рдмреБрд░рд╛ рд╣реИ рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЧреИрд░-рдЕрдиреБрд░реВрдкрддрд╛ рд╡рд╛рд▓реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рддрдм рддрдХ рдЦреБрд╢ рд░рд╣рддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рд╕рднреА рдмрд┐рдЯ рдПрдХ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЛрдореЗрди рдХреЗ рдмреАрдЪ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рджрд░реНрдж рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЕрдЪрд╛рдирдХ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдп JSON рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрд╡рд╛рджреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рд╣рдореЗрдВ JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдЙрджрд╛рд░ рдмрдирд╛рдХрд░ рджрд░реНрдж рдмрд┐рдВрджреБрдУрдВ рдХреЛ рджреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ) рдпрд╛ рдореВрд▓ рдХрд╛рд░рдг рдкрд░ рд╣рдорд▓рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП; рдЧреИрд░-рдкреБрд╖реНрдЯрд┐ JSON рдкреБрд╕реНрддрдХрд╛рд▓рдпред

рдЪреВрдВрдХрд┐ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдПрдордПрд╕ рд╢рд╛рдпрдж рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕рдУрдПрди рдкрд╛рд░реНрд╕рд░реНрд╕ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЪреИрдВрдкрд┐рдпрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдордПрд╕ рдХреЗ рд▓рд┐рдП рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрд▓рдЧ рд╣реЛред рд╢рд╛рдпрдж рдкрдврд╝рдиреЗ рдореЗрдВ рдЙрджрд╛рд░ рд╣реЛрдВ рд▓реЗрдХрд┐рди рд▓рд┐рдЦрдиреЗ рдореЗрдВ рд╕рдЦреНрдд рд╣реЛрдВ?

(рдЪреАрдЬреЗрдВ рдорд╛рдирдХ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ; рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ, рдЕрдиреБрдЧрд╛рдореА рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо, рдПрдХрд▓ рдЙрджреНрдзрд░рдг рддрд╛рд░, рдХреЛрдИ рдЙрджреНрдзрд░рдг рддрд╛рд░ рдЖрджрд┐ рдирд╣реАрдВ)

IMHO, рдЪреВрдВрдХрд┐ JSON рд╡реЗрдмрдмреНрд░реЛрд╕рд░ рдХреА рджреБрдирд┐рдпрд╛ рд╕реЗ рдЙрдкрдЬрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ JSON рдореЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдбрдмрд▓ рдЪреБрдирдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА JSON рдорд╛рдирдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИред

рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдкреАрдЖрдИ рдПрдкреАрдЖрдИ рдХреА рддрд░рд╣ рдПрдХ рдбреЛрдо рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рднреА рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд▓рдЧреЗрдЧрд╛ рдпрджрд┐ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХрд╛ рдПрдкреАрдЖрдИ рдерд╛ рдЬреЛ рдореБрдЭреЗ рдЯреЛрдХрди рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рдпрд╛ рд╡рд┐рдЬрд╝рд┐рдЯрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкрд░ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЗрдЬрд╛рдЬрдд рджреЗрддрд╛ рдерд╛ред рд╡реЗ рдмрдбрд╝реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬрд┐рдирд╕реЗ рдореИрдВ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБред

@mrange - рдЬрд┐рддрдирд╛ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рдЦреНрдд рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ .... рдРрд╕рд╛ рдХрд░рдирд╛ рдЧреИрд░-рдЕрдиреБрд░реВрдк рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдВрдкрдиреА рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдПрдХ рд▓реАрдЧреЗрд╕реА рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢реВрдиреНрдп рдХреЗ рдХрд░реАрдм рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╕рдЦреНрдд-рдСрди-рд░рд╛рдЗрдЯ, рдЬрдмрдХрд┐ рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп, рдпрд╣рд╛рдВ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд╣реИ: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдХреЛрдб рдХреЛ рдПрдХ рдЧреИрд░-рдЕрдиреБрд░реВрдк рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ?

@terrajobst рдзрдиреНрдпрд╡рд╛рдж! Func<Stream, CancellationToken, Task<T>> рдФрд░ Func<T, CancellationToken, Stream, Task> рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рдпрд╣рд╛рдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЯреЗрдХреНрд╕реНрдЯ рд░реАрдбрд░/рд░рд╛рдЗрдЯрд░, рд╕реНрдкреИрди рдФрд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рдХреБрдЫ рдУрд╡рд░рд▓реЛрдб рдХреЗ рд╕рд╛рдеред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдХреНрд░рдордмрджреНрдз/deserialize рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЛ рдПрдХ рдЬреЗрд╕рди рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рд╕рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

@thefringeninja рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рддреГрддреАрдп рдкрдХреНрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреНрдп рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИред рд╡рд╣рд╛рдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред

рдореИрдВ рдбрд░ рдлреИрд▓рд╛рдиреЗ рд╡рд╛рд▓реЛрдВ рдореЗрдВ рд╕реЗ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐

@terrajobst рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╣рд╛рдВ рд╣рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдЦрд╛рддреЗ рдореЗрдВ рдЕрд╕рдВрднрд╡ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ NuGet рдкрд░ "рдЬреЗрд╕рди" рдХреА рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдХрд┐рд╕реА рдХреЛ рднреА рдмрддрд╛рдиреЗ рдЬрд╛ рд░рд╣реА рдереАред рд╢рд╛рдпрдж рдирд╛рдо ServiceStack.Text рдХрд╣рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ "рдЕрд░реЗ! рдореИрдВ рдПрдХ рдкреИрдХреЗрдЬ рд╣реВрдВ рдЬреЛ JSON рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░ рд╕рдХрддрд╛ рд╣реИ!", рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд░рд╣реЗ рд╣реИрдВред рд╢рд╛рдпрдж рдпрд╣ рдПрдордПрд╕ рдбрд┐рдлреЙрд▓реНрдЯреНрд╕ рдХреЛ рдбреЙрдЧрдлреВрдб рдХрд░рдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдФрд░ рдпрд╛ рддреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдпрд╛ рдЙрдирд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдРрд╕рд╛ рдЕрдиреБрднрд╡ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ _just рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ_ рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ред рдпрджрд┐ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдПрдХ рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реЗ рдбреЙрдХреНрд╕ рдореЗрдВ рдкреНрд▓рдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ, рдиреЛрдЯ рдЬрд╛рд░реА рдХрд░ рд╕рдХреЗрдВ, рдЖрджрд┐ рдкрд░ рдЬреЛрд░ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдХрд┐ рдЪреВрдХ рд╕реЗ рдкрд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдЗрд╕реЗ рдЦреЛрдЬрдирд╛ рдХрдард┐рди рдмрдирд╛рдирд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдЧрд╛ред

рдореЗрд░реА рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХрд╛ рд▓рдХреНрд╖реНрдп рдИрдорд╛рдирджрд╛рд░ рд╣реИ, рддреЛ рдПрдкреАрдЖрдИ рдХреЛ рд╕рдореБрджрд╛рдп рдХреА рдЬрд░реВрд░рддреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реАрдзреЗ Json.NET рдХреЗ рдмрд╛рдж рддреИрдпрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓рдмреНрдмреЛрд▓реБрдЖрдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╕рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЗрдЦрдХреЛрдВ рд╕реЗ рдХрд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рди рдХреЗрд╡рд▓ рд╕рд░реНрд╡рд┐рд╕рд╕реНрдЯреИрдХ, рдмрд▓реНрдХрд┐ рдПрдкреАрдЖрдИ рдХреЛ рд╕реАрдзреЗ Json.NET рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдЖрдк рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреА рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдбреАрдПрд▓рдПрд▓ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддреЗ рд╣реИрдВред

рдПрдкреАрдЖрдИ рд╕реАрдзреЗ Json.NET рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП

... рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред

рдШреЛрд╖рдгрд╛ рд╕реЗ рдкрд╣рд▓реЗ рд╣реБрдИ рдЪрд░реНрдЪрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╢рд╛рдорд┐рд▓ рдерд╛ рдХрд┐ .Net рдЯреАрдо рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛрдЧреА рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЬреЛ рд╡реЗ рдорд╛рдирддреЗ рд╣реИрдВ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ред рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдЕрдкрдиреЛрдВ рд╕реЗ рдорд┐рд▓рд╛ рджрд┐рдпрд╛ред рдХрдИ рдорд╛рдпрдиреЛрдВ рдореЗрдВ, рдпрд╣ рдЗрд╕рд╕реЗ рднрд┐рдиреНрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рдирдИ JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреИрд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХреА рдЬрд╛рдПрдЧреА; рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдо рдПрдХ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд░рдЦрдиреЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╕реНрд╡рдпрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред :)

рдХреБрдЫ рднреА рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд░рд┐рд╕рд░реНрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдиреЛ рдмреНрд░рд╛рдВрдЪрд┐рдВрдЧ рдиреЛ рдПрдлрдПрд╕рдПрдо рдкрд╛рд░реНрд╕рд┐рдВрдЧ) https://www.microsoft.com/en-us/research/publication/mison-fast-json-parser -рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг/

рд╣рдо рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди JSON рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ --- Span<T> рдХреЗ рдЕрд▓рд╛рд╡рд╛ ---
cc @terrajobst @karelz

:( JSON рдХреА рдпрд╣ рд╕рд╛рд░реА рдЪрд░реНрдЪрд╛ рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рдХрд░рд╛рддреА рд╣реИ рдХрд┐ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░ рдореЗрд░рд╛ рдкреНрд░рд╢реНрди рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдХрд╛рд╢ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдФрд░ рд╕рдордп рд╣реЛрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдирд░реНрдХ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЬреЛ рд╣реИ рд╡рд╣ рдХреНрдпреЛрдВ рдмрди рдЧрдпрд╛ рд╣реИред 4.6.1 рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдФрд░ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдЕрдиреБрд░реВрдк рд░рд╣рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдмрд╛рдХреА рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ред

рдореИрдВрдиреЗ рдХреЛрд░ рдФрд░ 461 рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рд░рд┐рдХреЙрд▓ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬ рджреЗрдЦреЗ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдЧрд╛ред

рдореБрдЭреЗ рдЪрд┐рдВрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реНрдХреЗрдбрд┐рдВрдЧ рдореБрджреНрджрд╛ рд╣рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдХрд░реЗрдЧрд╛, рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЧрд▓рдд рд╕рд╛рдмрд┐рдд рдХрд░реЗрдВред

// рдбреЙрдЯ рдиреЗрдЯ рджреЗрд╡ рд╣рд░ рдЬрдЧрд╣

@c0shea

[...] рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдкреНрд▓рдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ, рдиреЛрдЯ рдЬрд╛рд░реА рдХрд░ рд╕рдХреЗрдВ, рдЖрджрд┐ рдЗрд╕ рдмрд╛рдд рдкрд░ рдЬрд╝реЛрд░ рджреЗ рд╕рдХреЗрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗ рдкрд░реЗ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реА рд╣реЛрдЧрд╛ред рдбреЙрдХреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рд╡рд┐рд╖рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ DI рдХрдВрдЯреЗрдирд░ , рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ , рд╕реНрд╡реИрдЧрд░ рдПрдХреАрдХрд░рдг , рдпрд╛ EF рдХреЛрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рджрд╛рддрд╛ ред

@ рдлрд┐рд▓рд┐рдк-рд╣реЗрдбрди
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореМрдЬреВрджрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЬреЛ рд╕рдВрднрд╡ рд╣реИ рдЙрд╕рдХреЗ рд▓рд┐рдП рдмрд╕ dotnet new mvc --help ред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реИрдХрд▓реНрдкрд┐рдХ JSON рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдПрдХреАрдХрд░рдг, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдпрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдВрднрд╡рддрдГ aspnet/Templates рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

@mrange - рдЬрд┐рддрдирд╛ рдореИрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рд╕рдЦреНрдд рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ .... рдРрд╕рд╛ рдХрд░рдирд╛ рдЧреИрд░-рдЕрдиреБрд░реВрдк рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдВрдкрдиреА рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдПрдХ рд▓реАрдЧреЗрд╕реА рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╢реВрдиреНрдп рдХреЗ рдХрд░реАрдм рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╕рдЦреНрдд-рдСрди-рд░рд╛рдЗрдЯ, рдЬрдмрдХрд┐ рдЕрдзрд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп, рдпрд╣рд╛рдВ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рд╣реИ: рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдХреЛрдб рдХреЛ рдПрдХ рдЧреИрд░-рдЕрдиреБрд░реВрдк рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИ?

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рд╕рдЦреНрдд рдореЛрдб рд╣реЛ рдФрд░ рдЗрд╕реЗ рдЕрдзрд┐рдХ рдЙрджрд╛рд░ рдореЛрдб рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ

@poke рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ vue cli рдЖрдЬрд╝рдорд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рдлрд┐рд░ dotnew new рдХрд╛ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рд╡рд░реНрддрдорд╛рди рдбреЙрдЯрдиреЗрдЯ рдирдпрд╛... рд╣реИ... рдпрд╣ рд╣реИ...

рдХреНрдпрд╛ рдореИрдВ рдХреГрдкрдпрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ JSON рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ int64 рдорд╛рдиреЛрдВ рдХрд╛ рдареАрдХ рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдФрд░ рд╣рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХреНрд░рдордмрджреНрдз/deserialize рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ? рдпрд╣ рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рддрдм рддрдХ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдХрдбрд╝реА рдореЗрд╣рдирдд рди рдХрд░реЗред рдЗрд╕ рдкрд░ рдПрдХ рднрд┐рдиреНрдирддрд╛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ ints рдпрд╛ longs рдореЗрдВ deserialized рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдореИрдВ рдХреГрдкрдпрд╛ рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ JSON рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рдкрд╛рд░реНрд╕рд┐рдВрдЧ int64 рдорд╛рдиреЛрдВ рдХрд╛ рдареАрдХ рд╕реЗ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреА рд╣реИ, рдФрд░ рд╣рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдХреНрд░рдордмрджреНрдз/deserialize рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ? рдпрд╣ рдЙрди рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рддрдм рддрдХ рдиреЛрдЯрд┐рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдХрдбрд╝реА рдореЗрд╣рдирдд рди рдХрд░реЗред рдЗрд╕ рдкрд░ рдПрдХ рднрд┐рдиреНрдирддрд╛ рдпрд╣ рддрдп рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд░рд╣реА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ ints рдпрд╛ longs рдореЗрдВ deserialized рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

....рдЖрд╣, рдПрдХреНрдорд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рд╕рдм рдХреБрдЫ рджреЛрдЧреБрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХреЛрдб рдХреЗ рдХрд┐рд╕реА рдЕрдиреНрдп рднрд╛рдЧ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИ рд╣реИ ...

рдПрдХ рд╢реБрджреНрдзрддрд╛рд╡рд╛рджреА рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬреЛрдВ рдХреЛ рдирд╛рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред
рдПрдХ рдпрдерд╛рд░реНрдерд╡рд╛рджреА рдХреЗ рд░реВрдк рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рд╕реЗ рд╕рд╣рдордд рд╣реЛрдирд╛ рд╣реЛрдЧрд╛ред

рдХреНрдпрд╛ рдирдП JSON рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдХреЛрдИ рднрд╛рдЧ .Net Standard 2.1 рдореЗрдВ рд╣реЛрдЧрд╛ ?

рдореИрдВ рдЗрд╕рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛ рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдкреАрдЖрдИ рд╕рддрд╣ рдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬрд┐рд╕рдХреА рдореИрдВ рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдореБрдЭреЗ рдЗрд╕ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреНрд╖реЗрддреНрд░ рджреЗрдЦрдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдкреАрдЖрдИ рд╕рддрд╣ рдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬрд┐рд╕рдХреА рдореИрдВ рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЕрднреА рднреА рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдкреАрдЖрдИ рд╕рдореАрдХреНрд╖рд╛ рдиреЛрдЯреНрд╕ рд╣реИрдВ ред

рдЕрджреНрдпрддрди: рд░реЛрдбрдореИрдк рднреА рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз

рддреЛ рдХреИрд╕реЗ рд╕реБрд╡рд┐рдзрд╛ рдкреВрд░реНрдг рд╣реЛрдЧреА aspnet 3.0 api рдХреА рддреБрд▓рдирд╛ json.net api рд╕реЗ рдХреА рдЬрд╛рдПрдЧреА? рд╕рд╛рде рд╣реА, рдХреНрдпрд╛ рд╕рднреА рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдФрд░ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП json.net рджреЗрд╢реА рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдирдП рдРрдкреНрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рдЪрд░рдгрдмрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛?

рдмрд╕ рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВ рдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ json.net рдХреЗ рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмрджрд▓реЗрдВ?

рдпрд╣ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рдЦрдмрд░ рд╣реИред

рдореИрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ @neuecc рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ MessagePack , Utf8Json , ZeroFormatter рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдЙрдирдХрд╛ рдХрд╛рдо рдЕрднреВрддрдкреВрд░реНрд╡ рд░рд╣рд╛ рд╣реИред

@linkanyway рдкрд░рд┐рдгрд╛рдо рдирдпрд╛ рдЖрд╡рдВрдЯрди рдПрдкрд┐рд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реБрдП, json.net рдХреЗ рд╕рдмрд╕реЗрдЯ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ aspnet рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ json.net рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдордЬрдмреВрдд рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ рд╡реЗ рд▓рдЧрднрдЧ рдореВрд▓ рд░реВрдк рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдХреНрдпрд╛ рдХреЛрдИ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдкреАрдЖрдИ рд╕рддрд╣ рдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ рдЬрд┐рд╕рдХреА рдореИрдВ рд╕рдореАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдЕрднреА рднреА рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ, рд▓реЗрдХрд┐рди dotnet/corefx#33216 рдПрдХ рд╢реБрд░реБрдЖрдд рд╣реИред рдпрд╣рд╛рдВ рдПрдкреАрдЖрдИ рд╕рдореАрдХреНрд╖рд╛ рдиреЛрдЯреНрд╕ рд╣реИрдВ ред

рдЕрджреНрдпрддрди: рд░реЛрдбрдореИрдк рднреА рдпрд╣рд╛рдБ рдЙрдкрд▓рдмреНрдз

@рдЦреЗрд▓рдВрдЧ рдХреНрдпрд╛ рд╣рдореЗрдВ рдХреЛрдИ рд▓реИрдВрдЧ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓рдиреЗ рдЬрд╛ рд░рд╣реА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЕрд╕рд▓реА рдХреЗ рд▓рд┐рдП рд╕реА # рдореЗрдВ

рдУрдПрд╕рдПрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рдЖрдВрджреЛрд▓рдиред рдЕрдиреНрдп рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдордПрд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдмреЗрд╣рддрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░реЗрдЧрд╛, рдпрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдУрдПрд╕рдПрд╕ рдмрди рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдореБрджрд╛рдп рдХреА рдкрд░рд╡рд╛рд╣ рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рд╣рдореЗрдВ рдХреЛрдИ рд▓реИрдВрдЧ рдорджрдж рдорд┐рд▓реЗрдЧреА рдХрд┐ рд╣рдо рдЕрд╕рд▓реА рдХреЗ рд▓рд┐рдП рд╕реА # рдореЗрдВ рдЬреЗрд╕рди рд▓рд┐рдЦ рд╕рдХреЗрдВ?

@dotnetchris рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ "рд▓реИрдВрдЧ рд╣реЗрд▓реНрдк" рд╕реЗ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? JSON рдЕрдХреНрд╖рд░? рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд╣реЛрдЧрд╛ред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЖрдиреЗ рд╡рд╛рд▓реА "рдПрдореНрдмреЗрдбреЗрдб рднрд╛рд╖рд╛" рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рджреЗрдЦрд╛ рд╣реИ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ JSON рдХреЗ рд▓рд┐рдП ?

@рдЦреЗрд▓рдВрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдХрджрдо рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдкреВрд░реНрдг рдЭрдЯрдХрд╛ рд╕рдорд░реНрдердиред рдЕрдкрдиреЗ рд▓рд┐рдВрдХ рд╕реЗ рд╕рдорд╛рди рдирдореВрдирд╛ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рдЗрд╕рдХреЗ рд╕рдорд╛рди:

json v1 = { 
                    first: 0, 
                    second: ["s1", "s2" ] 
                }

var andCsharp = v1.second.Where(item => item.EndsWith("1"));

рдкрд░реНрдпрд╛рдкреНрдд рд╡реВрдбреВ рдХреЗ рд╕рд╛рде, рдЬреИрд╕реЗ рдХрд┐ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЯрдкрд▓/рд╡реИрд▓реНрдпреВрдЯреБрдкрд▓/рд░рд┐рдХреЙрд░реНрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрдирд░реЗрд╢рди, рддрд╛рдХрд┐ рд╕рднреА рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рд▓реИрдВрдЧ рд╕реНрддрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд╕рдХреЗрдВред

рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рд╕рдВрдХрд▓рдХ рдЬреЗрд╕рди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдХрдХреНрд╖рд╛ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдЖрдкрдиреЗ рд▓рд┐рдЦрд╛ рдерд╛:

var v1 = "{ first: 0, second: ['s1', 's2' ] }".Deserialize<MyV1>();

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдПрд▓рдУрдПрд▓ @ рдбрд╛рдЙрдирд╡реЙрдЯрд░ред

@dotnetchris рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ https://github.com/dotnet/roslyn/pull/24110 рдкрд░ рд╡реЛрдЯ

рдХреНрдпрд╛ "рдмрд┐рд▓реНрдЯ-рдЗрди" рдФрд░ "рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛" JSON API рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ (рдиреЗрдЯрд╕реНрдЯреИрдВрдбрд░реНрдб) рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рд╣реЛрдЧрд╛? рдЕрдЧрд░ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рддреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдпрд╛ ASP.NET рдХреЛрд░ рд╕рд╛рдЭрд╛ рдврд╛рдВрдЪрд╛ nuget pakages рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдпрд╣ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдХреНрдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ System.Json рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╣реАрдВ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рдирд╛рдо рд╕реНрдерд╛рди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ/рд╡рд┐рд╕реНрддрд╛рд░ .NET Core 3.0 рдФрд░ рдЕрдВрддрддрдГ .NET рдорд╛рдирдХ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред Xamarin.Android 7.1+, Xamarin.iOS 10.8+ рдФрд░ Xamarin.Mac 3.0+ рдкрд░ рдЙрд╕ рдиреЗрдорд╕реНрдкреЗрд╕ рдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ (рдЗрд╕рдХрд╛ рдЗрддрдирд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЙрдкрд▓рдмреНрдз ЁЯШЕ)ред

рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдЯреВрдЯ рдЬрд╛рдПрдЧреАред рдЗрд╕реЗ рдЫреЛрдбрд╝рдХрд░ рдПрдХ рдирдпрд╛ рдПрдкреАрдЖрдИ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдХреБрдЫ рднреНрд░рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдирдП рдПрдкреАрдЖрдИ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдХрд┐рд╕реА рднреА рдПрдкреАрдЖрдИ рдХреЛ рд╣рдЯрд╛рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд/рдмрдврд╝рд╛рдирд╛ рдереЛрдбрд╝рд╛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

JsonReader/JsonWriter рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдХреЗрд╡рд▓ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд╕реНрд░реЛрдд рдФрд░ рд▓рдХреНрд╖реНрдп рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВ MongoDB рдХреЗ рд▓рд┐рдП JSON.NET рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рддреЗрдЬрд╝ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдПрдХрд╛рдзрд┐рдХ рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдереЛрдбрд╝рд╛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред

@SebastianStehle: JsonReader / JsonWriter рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХрдкреЛрд▓-рдХрд▓реНрдкрдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, terrajobst рджреЗрдЦрддреЗ рдЯрд┐рдкреНрдкрдгреА

3.0 рдХреА рдпреЛрдЬрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  1. рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди JSON APIsред рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рдкрд╛рдардХ/рд▓реЗрдЦрдХ, рдПрдХ рд╕реНрдЯреНрд░реАрдо рдЖрдзрд╛рд░рд┐рдд рдкрд╛рдардХ/рд▓реЗрдЦрдХ , рдФрд░ рдПрдХ >рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХред
  2. ASP.NET Core JSON рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп wrt рд╣реИред

рдПрдХ рдЦреБрд▓рд╛ рдкреНрд░рд╢реНрди рд╣реИ рдХрд┐ 3.0 рдореЗрдВ ASP.NET рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рдирд┐рд╖реНрдард╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╣рдо 3.0 рддрдХ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╣рдо рдЙрдиреНрд╣реЗрдВ Json.NET рдПрдХреАрдХрд░рдг рдкреИрдХреЗрдЬ рдореЗрдВ рдЦреАрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд▓рдХреНрд╖реНрдп рдкрд░реНрдпрд╛рдкреНрдд рдирд┐рд╖реНрдард╛ рдФрд░ рд╕рдорд╛рдирддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд▓реЛрдЧреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп, рдкреНрд░рдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рдПрдкреАрдЖрдИ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рдкреЗрдЯрд╛ рдЬрд╛рдПрдЧрд╛ рддрд╛рдХрд┐ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рд╕реНрдЯреНрд░реАрдо рд╕реЗ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рдпрд╣ рдЕрдХреНрд╕рд░ рд╕рдмрд╕реЗ рдЖрдо рд╣реЛрддрд╛ рд╣реИ, рдЬрдм рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЙрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рдкреНрд░рджрд░реНрд╢рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд╕реНрддрд░ рдПрдкреАрдЖрдИ рдЬреЛ Span<T> рдпрд╛ Memory<T> , рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рд╛рде рдореЗрдВ рд╣реИ/рдореЗрдореЛрд░реА рдореЗрдВ рдЖрдк рдЗрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдПрд╕рд┐рдВрдХ рдХрд╛ рдУрд╡рд░рд╣реЗрдб рдирд╣реАрдВ рд╣реИред

@рддреНрд╕реЗрдВрдЧрдПрд╕рдЖрд░

https://github.com/neuecc/Utf8Json рдкреНрд░рджрд░реНрд╢рди рдХрд╛рд░рдгреЛрдВ (рд╡рд░реНрдЪреБрдЕрд▓ рдХреЙрд▓ рдФрд░ рдЖрд╡рдВрдЯрди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ) рдХреЗ рдХрд╛рд░рдг рдХрд╕реНрдЯрдо рдкрд╛рдардХ/рд▓реЗрдЦрдХ рд▓рд┐рдЦрдиреЗ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд╡реЗ рдЙрд╕реА рд░рд╛рд╕реНрддреЗ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдХреЛрдИ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЛрдб рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

рдореИрдВ @ JonasZ95 рдФрд░ @gregsdennis рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд╛рди JSON.Net рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЕрдореВрд░реНрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ _ рдЪрд╛рд╣рд┐рдП_ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред

рдореБрдЭреЗ рдпрд╣ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП ...

  1. рдХреНрд░рдорд╛рдВрдХрди / рдЕрдХреНрд░рдорд╛рдВрдХрди
  2. рдЙрдХреНрдд рдХреНрд░рдорд╛рдВрдХрди рдФрд░ рдЕрдХреНрд░рдорд╛рдВрдХрди рдХрд╛ json рд╕рдВрд╕реНрдХрд░рдгред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ ASP.NET рдХреЛрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ JSON рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдореВрд░реНрдд рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░рдорд╛рдВрдХрди рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдХреА рдмрд╛рдд рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдлреНрд░реЗрдорд╡рд░реНрдХ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдХреЛ рдХреЛрдбрд┐рдВрдЧ рдХреА DI рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ (рдЗрдВрдЯрд░рдлреЗрд╕ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдирд╣реАрдВ) рдФрд░ рдмрд╕ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд▓реЗрдЦрдХреЛрдВ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдпрд╣ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд┐рд▓рд┐рдЯреА рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдмрд╕ рдПрдХ ASP.NET рдХреЛрд░ рдПрдбреЙрдкреНрдЯрд░ рдХреНрд▓рд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдбреЗрдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ASP.NET рдХреЛрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред

рдХрд┐рд╕реА рддреГрддреАрдп рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
```рд╕реА#
// рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВ
рдиреНрдпреВрдЯрдирд╕реЙрдлреНрдЯ.рдЬреЗрд╕рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛;

// рд╕рдВрдХреНрд╖рд┐рдкреНрддрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╣реА рднреЛрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рд╕рд┐рд░реНрдл to
// рдореБрджреНрджреЗ рдкрд░ рдЖрдП
рдкрдмреНрд▓рд┐рдХ рдХреНрд▓рд╛рд╕ рдиреНрдпреВрдЯрдирд╕реЙрдлреНрдЯ рдПрдбреЗрдкреНрдЯрд░: ISerializer
{
рдирд┐рдЬреА JsonSerializerSettings _settings;
рдирд┐рдЬреА рд╕реНрд╡рд░реВрдкрдг _format;

public NewtonsoftAdapter(JsonSerializerSettings Configuration, Formatting FormatOption)
{
    _settings = Configuration;
    _format = FormatOption;
}

    // interface method
public string Serialize<T>(T Subject)
{
    return JsonConvert.SerializeObject(Subject, _format, _settings);
}

    // interface method
public T Deserialize<T>(string SerializedContent)
{
    return JsonConvert.DeserializeObject<T>(SerializedContent, _settings);
}

}

...

// рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рд╕реЗрдЯрдЕрдк рдПрдбреЗрдкреНрдЯрд░
рд╡рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ = рдирдпрд╛ JsonSerializerSettings
{
рдорд┐рд╕рд┐рдВрдЧ рдореЗрдореНрдмрд░рд╣реИрдВрдбрд▓рд┐рдВрдЧ = рдиреНрдпреВрдЯрдирд╕реЙрдлреНрдЯ.рдЬреЗрд╕рди.рдорд┐рд╕рд┐рдВрдЧ рдореЗрдореНрдмрд░рд╣реИрдВрдбрд▓рд┐рдВрдЧ
};
var рдПрдбреЙрдкреНрдЯрд░ = рдирдпрд╛ рдиреНрдпреВрдЯрдирд╕реЙрдлреНрдЯ рдПрдбреЗрдкреНрдЯрд░ (рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдлрд╝реЙрд░реНрдореЗрдЯрд┐рдВрдЧред рдЗрдВрдбреЗрдВрдЯреЗрдб);

// asp.net рдХреЛрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
// рдЬрд╣рд╛рдВ рдПрдбреЗрдкреНрдЯрд░ ISerializer рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рдЖрдк рдЬреЛ рднреА рдирд╛рдо рд▓реЗрдХрд░ рдЖрддреЗ рд╣реИрдВ)
// рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХ рдЕрдкрдиреА рдЦреБрдж рдХреА UseXYZ() рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐ рднреА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
app.UseSerializer (рдПрдбрд╛рдкреНрдЯрд░);
```

SIMD- рдЖрдзрд╛рд░рд┐рдд рдЯреЗрдХреНрд╕реНрдЯ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдореЗрдВ рдмрд╣реБрдд рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрд░рдЪрд┐рдд рдЯреЗрдХреНрд╕реНрдЯ, рдЬреИрд╕реЗ JSON рд╢рд╛рдорд┐рд▓ рд╣реИ ред рдХреНрдпрд╛ рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ .NET Core рдореЗрдВ рдХрд╛рдо рдЗрд╕ рдкреНрд░рджрд░реНрд╢рди рд╕реНрддрд░ рддрдХ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдЧрд╛? рдХреНрдпрд╛ рдЗрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдЕрд░реЗ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд░рд┐рд╕рд░реНрдЪ рдХреЗ рдкрд╛рд╕ рднреА рдХреБрдЫ рдирдП рд╣рд╛рдИ-рдкрд░рдл рд╕реЙрд▓реНрдпреВрд╢рдВрд╕ рд╣реИрдВ !

@ рдПрдВрдердиреА рдорд╛рд╕реНрдЯреНрд░рд┐рдпрди рдЗрд╕реЗ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдЕрдВрджрд╛рдЬрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ рдХрд┐ рдпрд╣ рд╡рд░реНрддрдорд╛рди Json impl simdjson рд╕реЗ рдХреИрд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИред

рд╡реИрд╕реЗ, рд╕рд┐рдордбрд╕рди рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡реЗ рдЕрднреА рднреА рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рдбреЙрдХреНрдЯрд░)ред рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдЪрдПрди рдкрд░ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдХреБрдЫ

рдХреНрдпрд╛ рдЗрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

.NET Core 3.0 рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдирд┐рд░реНрднрд░ рдЗрдВрдЯреНрд░рд┐рдирд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╢рд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ

рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡реЗрдм рд╕реНрдХреЛрдк рдореЗрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдПрдХ рдкреНрд░рд╛рдердорд┐рдХ рдмрд╛рдзрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡реЗрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред

рдореБрдЭреЗ рдЧрд▓рдд рдордд рд╕рдордЭреЛ, рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдЕрдиреБрдХреВрд▓рди рдмрд╣реБрдд рдЕрдЪреНрдЫреЗ рд╣реИрдВ рдФрд░ рд╢рд╛рдпрдж рдмрд╣реБрдд рдЫреЛрдЯреЗ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рднреА рд▓рд╛рднрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдЕрднреА рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирдИ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдзреНрдпрд╛рди рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рд╕реЗ рдмрдЪрдиреЗ рдФрд░ рд╕рдм рдХреБрдЫ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рдд рдХреЗ рдмрд╣реБрдд рдХрд░реАрдм рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдкрд░ рд╣реИред рдЕрдХреЗрд▓реЗ рд╣реА JSON.NET рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рдХрд╛рдлреА рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЬрдм рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрдиреБрдХреВрд▓рди рдХреЛ рджреЗрдЦрдирд╛ рдПрдХ рдФрд░ рдХрд╣рд╛рдиреА рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЬрд╣рд╛рдВ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ рд╣рдо рд░реЛрдЬрд╛рдирд╛ JSON рдХреЗ рдЯреЗрд░рд╛ рдмрд╛рдЗрдЯреНрд╕ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рджреВрд╕рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирддрд╛ рд╣реВрдВ рдЬреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП .NET рдФрд░ F# рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред JSON рд╕рд┐рд░реНрдл рд╕рд░реНрд╡рд░ => рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░рд┐рд╡рд╣рди рддрдВрддреНрд░ рд╕реЗ рдЕрдзрд┐рдХ рдмрди рдЧрдпрд╛ рд╣реИред рд╢реБрджреНрдз рдмреИрдХрдПрдВрдб рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдУрдПрдлрд╕реА; рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП AVRO/Protobuf рдЬреИрд╕реЗ рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдпрд╣ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ рдФрд░ JSON рдХреЗ рдХреБрдЫ рд▓рд╛рдн рд╣реЛрддреЗ рд╣реИрдВ (рдореИрдВ рдЕрдирд┐рдЪреНрдЫрд╛ рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ)ред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддреЗрдЬрд╝ JSON рдкрд╛рд░реНрд╕рд░ рд╣реЛрдиреЗ рд╕реЗ рд╕рдЪрдореБрдЪ рд╣рдорд╛рд░реЗ рдЬреИрд╕реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП $10,000 рдбреЙрд▓рд░ рдкреНрд░рддрд┐ рдорд╛рд╣ рдХреА рдмрдЪрдд рд╣реЛ рд╕рдХрддреА рд╣реИред

@poke рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ .NET рдХреЛрд░ (ASP.NET рдирд╣реАрдВ...) рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рднреА рд╡рд░реНрдХрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рди рдХрд┐ рдХреЗрд╡рд▓ рд╡реЗрдм рдХреЗ рд▓рд┐рдПред

рдореИрдВ рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рд╕рд╣рдордд рд╣реЛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ .NET Core 3.0 рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдХреВрд▓рди рддрдХрдиреАрдХ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЪреБрдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЕрдиреБрдХреВрд▓рди рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ (рдпрд╛рдиреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рддреЛрдбрд╝реЗ рдмрд┐рдирд╛) рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рдХреБрдЫ рдЬрд╛рдВрдЪ рдХреА рдЧрдИ рд╣реИред )

рдпреВрдирд┐рдлрд╛рдЗрдб рдореИрдкрд┐рдВрдЧ рдЕрд╕реЗрдВрдмрд▓реА ('System.Text.Json.Mapping') рдЬреИрд╕рд╛ рдХреБрдЫ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ JSON рдХреЛ C# рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЗрд╕ рдЪреАрдЬрд╝ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рднреА рдореМрдЬреВрджрд╛ JSON рдкрд╛рд░реНрд╕рд░реНрд╕/рд░рд╛рдЗрдЯрд░реНрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рднреА .NET рдорд╛рдирдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рджрд░реНрдж рдХреЗ рд╡рд┐рднрд┐рдиреНрди JSON рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмреАрдЪ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛

@AlexeiScherbakov рдирдП рдЕрдореВрд░реНрдд рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрддрдирд╛ рдорджрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдк рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрдореВрд░реНрддрддрд╛ рдХреЛ рдЪреБрдирдХрд░ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реАрдорд┐рдд рдХрд░ рд▓реЗрдВрдЧреЗ рдФрд░ рд╣рдореЗрд╢рд╛ рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛрдВрдЧреЗ рдЬреЛ рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдзрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕реЗ рдРрд╕рд╛ рд╣реА рд░рд╣рд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд▓реЙрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде ред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рдирдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдирдпрд╛ рдЕрдореВрд░реНрдд рдмрдирд╛рдиреЗ рд╕реЗ рд╣рдореЗрдВ рдХреЛрдИ рд▓рд╛рдн рдорд┐рд▓реЗрдЧрд╛, рдЦрд╛рд╕рдХрд░ рдЬрдм рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╡реИрд╕реЗ рднреА рдмрд╣реБрдд рдХрдо рд╕реБрд╡рд┐рдзрд╛ рд╕рдВрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред

рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЗрдЯрд╛рдХрдВрдЯреНрд░реИрдХреНрдЯ/рдбреЗрдЯрд╛рдореЗрдореНрдмрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдореМрдЬреВрджрд╛ рдиреЗрдЯрд╕реНрдЯреИрдВрдбрд░реНрдб рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рдореНрдорд╛рди рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдЧрд╛ (рднрд▓реЗ рд╣реА рд╡рд╣ рдЕрдореВрд░реНрдд рдХреБрдЫ рд╣рдж рддрдХ рд╕реАрдорд┐рдд рд╣реЛ)ред

рдПрдХ рдЕрдирджреЗрдЦрд╛ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд░рдм рдирдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдФрд░ рдкрд░рд┐рджреГрд╢реНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП JSON рдХреА 1:1 рдореИрдкрд┐рдВрдЧ рдХрд░реЗрдВрдЧреЗ, рдпрджрд┐ рдЖрдк рдорд╛рдирдХ рд╕реЗ рдмрд╛рд╣рд░ рдХреБрдЫ рднреА рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ json.net рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореБрдЭреЗ JSON <=> C# Classes рдХреА рдЗрддрдиреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ JSON рдореЙрдбрд▓ рд╕реЗ рдмрдирд╛рдП рдЧрдП C# рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рд╕реЗ JSON рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ/рд▓рд┐рдЦрдиреЗ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реЛрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдЗрд╕ рддрд░рд╣ рдореИрдВ (рдЬреЛ JSON <=> C# рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрддрдирд╛ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛) рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдкрд░ рд░рд╛рдЙрдВрдб рдЯреНрд░рд┐рдкрд┐рдВрдЧ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрд╢рд▓ рдкрд╛рд░реНрд╕рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

@mrange рдпрд╣реА рдкрд╛рдардХ рдФрд░ рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рд╣реИ

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдореИрдВ рдЬреЗрдПрд╕рдУрдПрди рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рд░реАрдбрд░/рд░рд╛рдЗрдЯрд░ рдПрдкреАрдЖрдИ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдХреНрдпрд╛ рдкрд╛рдардХ/рд▓реЗрдЦрдХ рдкреИрдЯрд░реНрди рд╕рдмрд╕реЗ рдХреБрд╢рд▓ рд╣реИ?

рдЕрднреА рддрдХ System.Text.Json рдореЗрдВ 3 рдкреНрд░рдХрд╛рд░ рд╣реИрдВ :

  • Utf8JsonReader - UTF-8 рдПрдиреНрдХреЛрдбреЗрдб JSON рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдкрдврд╝рдиреЗ рдХрд╛ рдПрдХ рддреЗрдЬрд╝, рдЧреИрд░-рдХреИрд╢реНрдб, рдлрд╝реЙрд░рд╡рд░реНрдб-рдУрдирд▓реА рддрд░реАрдХрд╛ред
  • Utf8JsonWriter - ^ Utf8JsonReader , рд▓реЗрдХрд┐рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред
  • JsonDocument - JSON рдкреЗрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдВрдбрдо-рдПрдХреНрд╕реЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЙрдбрд▓ред

рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдкреНрд░рдХрд╛рд░ (рдЕрдзрд┐рдХ рдпрд╛ рдХрдо) рдЖрд╡рдВрдЯрди рдореБрдХреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рд╣рдордиреЗ рд╕рд┐рдордбрдЬрд╕рди рдкреЗрдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛: https://arxiv.org/abs/1902.08318

simdjson рдХреЗ C# рдкреЛрд░реНрдЯ рдкрд░ рднреА рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ: https://github.com/EgorBo/SimdJsonSharp

cc @EgorBo

рдпреВрдирд┐рдлрд╛рдЗрдб рдореИрдкрд┐рдВрдЧ рдЕрд╕реЗрдВрдмрд▓реА ('System.Text.Json.Mapping') рдЬреИрд╕рд╛ рдХреБрдЫ рдмреЗрд╣рддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ JSON рдХреЛ C# рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдореИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЗрд╕ рдЪреАрдЬрд╝ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рднреА рдореМрдЬреВрджрд╛ JSON рдкрд╛рд░реНрд╕рд░реНрд╕/рд░рд╛рдЗрдЯрд░реНрд╕ рдХреЛ рдПрдХреАрдХреГрдд рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рд╕рднреА .NET рдорд╛рдирдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рджрд░реНрдж рдХреЗ рд╡рд┐рднрд┐рдиреНрди JSON рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмреАрдЪ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛

рдореБрдЭреЗ рд╡рд╛рдХрдИ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдирдпрд╛ рдЕрдореВрд░реНрдд рдЧреБрдгреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реНрд╡рдЪреНрдЫ рдкреАрдУрд╕реАрдУ рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдбреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕рдЬрд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рдпреВрдЖрдИ рдкрд░рддреЛрдВ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдореМрдЬреВрджрд╛ рдбреЛрдореЗрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЬреЗрд╕рди рдореЗрдВ рдореИрдк рдХрд░рддрд╛ рд╣реИред

рд╢рд╛рдпрдж рдЬреЗрд╕рди рд╕реЗ рд╕реА # рдХрдХреНрд╖рд╛рдУрдВ рдХреА 1-1 рдореИрдкрд┐рдВрдЧ рдПрдХ рдмреЗрд╣рддрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛрдЧрд╛, рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдк рдирдИ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╡реНрдпреВрдореЛрдбреЗрд▓ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдХреНрд╖рд╛рдПрдВ рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВред

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЙрди рдЧреБрдгреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдерд╛ рдЬрд┐рдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдХреНрд░рдордмрджреНрдзрддрд╛ рдкрд╣рд▓реБрдУрдВ (рдЬреИрд╕реЗ рдКрдВрдЯ рдмрдирд╛рдо рдкрд╛рд╕реНрдХрд▓ рдЖрд╡рд░рдг) рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

@mrange рдпрд╣реА рдкрд╛рдардХ рдФрд░ рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рд╣реИ

@davidfowl рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдирдП рдПрдкреАрдЖрдИ рдЗрд╕ рдорд╛рд░реНрдЧ рдкрд░ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ? рдХреНрдпрд╛ рдбрд┐рдЬрд╛рдЗрди рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

рдХреНрд░рдорд╛рдВрдХрди рд╕рдорд░реНрдерди рдЙрддрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдмреЛрд▓рддреЗ рд╣реИрдВ ред рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджрд╛ рдХрд╣рддрд╛ рд╣реИ:

  • рд╕рдордп рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг, рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлреАрдЪрд░ рд╕реЗрдЯ 3.0 рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рдЙрддреНрдкрд╛рдж рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИред
  • рд╕рд╛рдзрд╛рд░рдг POCO рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпреЗ рдЖрдорддреМрд░ рдкрд░ рдбреАрдЯреАрдУ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • рдПрдкреАрдЖрдИ рдХреЛ рдмрд╛рдж рдХреЗ рд░рд┐рд▓реАрдЬ рдореЗрдВ рдФрд░ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди-рдЯрд╛рдЗрдо рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд░рди-рдЯрд╛рдЗрдо рдкрд░ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВред
  • COMP рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд▓рд┐рдП рдлреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдЖрдИрдПрд▓ рдПрдорд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рдиред

рдпрд╣ рднреА рд╡рд┐рд╡рд░рдг рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдПрдирдо рд░реВрдкрд╛рдВрддрд░рдг, рдирд▓ рд╣реИрдВрдбрд▓рд┐рдВрдЧ, рдКрдВрдЯ- рдмрдирд╛рдо рдкрд╛рд╕реНрдХрд▓рдХреЗрд╕рд┐рдВрдЧ рдЗрддреНрдпрд╛рджрд┐ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреИрд╕реЗ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕ рдореБрджреНрджреЗ рдпрд╛ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдЫреЛрдбрд╝ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

@lemire рд╡рд╛рд╣, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИред рд╕рд┐рдордбрд╕рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реБрдкрд░ рдлрд╛рд╕реНрдЯ рд╣реИред

рдХреЛрдИ рдореМрдХрд╛ рд╣реИ рдХрд┐ рдЖрдк TechEmpower рдХреЗ

рдореБрдЭреЗ рдпреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдорд┐рд▓реЗ: TechEmpower рд░реЗрдкреЛ рдореЗрдВ рдФрд░ ASP.NET рд░реЗрдкреЛ рдореЗрдВ ред

@KPixel рдпрд╣ рдХреНрд░рдорд╛рдВрдХрди рд╣реИ, рд╣реИ рдирд╛? рдЗрд╕ рдмреАрдЪ simdjson рдПрдХ рдкрд╛рд░реНрд╕рд░ рд╣реИ ... рдЬрдм рддрдХ рдореИрдВ рд╢рд░реНрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рдпреЗ рдЪреАрдЬреЗрдВ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдЬрд╛рддреА рд╣реИрдВ?

рдореЗрд░рд╛ рдмреБрд░рд╛ред рдореИрдВрдиреЗ рдорд╛рди рд▓рд┐рдпрд╛ рдХрд┐ рдПрдХ рдЕрдХреНрд░рдорд╛рдВрдХрди рднрд╛рдЧ рдерд╛ (рдЬреЛ рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛)ред

рдХреНрдпрд╛ System.Text.Json рдПрдХ .net рдорд╛рдирдХ nuget рдкреИрдХреЗрдЬ рд╣реЛрдЧрд╛? рдпрд╛ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ .net core 3.0 рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ?

@ John0King рдпрд╣рд╛рдБ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ: https://github.com/dotnet/corefx/blob/master/src/System.Text.Json/source_package/README.md

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдпреЛрдЬреНрдпрддрд╛ рдирдП JSON рдкреИрдХреЗрдЬ рдХрд╛ рднреА рдлреЛрдХрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ JSON рд╕реНрдХреАрдорд╛ рд╕рддреНрдпрд╛рдкрди рд╕рдорд░реНрдерди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдиреНрдпреВрдЯрдирд╕реЙрдлреНрдЯ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╢реБрд▓реНрдХ рд▓реЗрддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдЗрддрдирд╛ рдореМрд▓рд┐рдХ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдордВрдЪ рдореЗрдВ рдореБрдлреНрдд рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдПрдХреНрд╕рдПрдордПрд▓ рд╕реНрдХреАрдорд╛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдерд╛ред

@ jemiller0 рдореЗрд░реА рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ XML рд╕рддреНрдпрд╛рдкрди рдХреБрдЫ рд╣рдж рддрдХ рдорд┐рд╢реНрд░рд┐рдд рдмреИрдЧ рд░рд╣рд╛ рд╣реИ рдФрд░ JSON рд╕реНрдХреАрдорд╛ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╢рдмреНрдж рдореЗрдВ рдЗрддрдирд╛ рдЕрдкрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдк рд╣рдореЗрд╢рд╛ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реНрдХреАрдорд╛ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕рдореЗрдВ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмрдбрд╝реА рдмрд╛рдд рд╣реИ?

@lemire рд╣рд╛рдБ, рдпрд╣ рдмрдбрд╝реА рдмрд╛рдд рд╣реИ, рдпрджрд┐ рдЖрдк рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рд╕рднреА рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдПрдХреНрд╕рдПрдордПрд▓ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдПрдХ рдорд┐рд╢реНрд░рд┐рдд рдмреИрдЧ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред JSON рд╕реНрдХреАрдорд╛ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд╕рд╛рде рд╡рд╣реА рдмрд╛рддред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди рдлреНрд░реА рддрд░реАрдХрд╛ рди рд╣реЛрдирд╛ .NET рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рдЕрдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рдмрдирд╛рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдХрднреА рднреА рдЬреЗрд╕рди рд╕реНрдХреАрдорд╛ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред рдлрд┐рд░ рднреА рдпрд╣ рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ json.net рдореЗрдВ рдЕрд░рдмреЛрдВ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ рд╡рд┐рдЪрд┐рддреНрд░рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдпрд╣рд╛рдВ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╕реБрдкрд░ рд▓рд╛рдЗрдЯ рд╡реЗрдЯ рдлрд╛рд╕реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдк рдЗрд╕ рдмрд╛рдд рд╕реЗ рдирд╛рдЦреБрд╢ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ json.net рдХреЗ рд▓рд┐рдП json рд╕рддреНрдпрд╛рдкрди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдПрдВред

@ рдЬреЗрдорд┐рд▓рд░0

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ: рдХреНрдпрд╛ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдПрдВ рдЕрдкрдиреЗ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ JSON рд╕реНрдХреАрдорд╛ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ?

рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд▓рдХреНрд╖реНрдп JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛, рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛрдирд╛ рд╣реИред рдЬреЛ рдХреБрдЫ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ JSON.NET рдФрд░ JSON рд╕реНрдХреАрдорд╛ рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╡рд╣ рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рдпрджрд┐ рдЖрдк JSON рд╕реНрдХреАрдорд╛ рд╕рддреНрдпрд╛рдкрди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдПрдХ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ JSON рд╕реНрдХреАрдорд╛ рд╕рддреНрдпрд╛рдкрди рд╣реЛрдиреЗ рд╕реЗ рдХрд┐рд╕реА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзреА рд╣реЛрдиреЗ рдпрд╛ рди рд╣реЛрдиреЗ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рд▓рдХреНрд╖реНрдп JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛, рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛрдирд╛ рд╣реИред рдЬреЛ рдХреБрдЫ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ JSON.NET рдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╡рд╣ рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЗрд╕рдореЗрдВ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╕реБрд╡рд┐рдзрд╛рдПрдБ рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреА, рдЬрд┐рдиреНрд╣реЗрдВ Newtonsoft.Json рдХреЗ рдбреНрд░реЙрдк-рдЗрди рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@poke рдЖрдк рдЙрд╕рдХреЗ рд▓рд┐рдП рдЖрдк рд╣рдХрджрд╛рд░ рд╣реИрдВред рдПрдХреНрд╕рдПрдордПрд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣рд░ рдЬрдЧрд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдареАрдХ рд╣реИ, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдиреЗ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рд╕рддреНрдпрд╛рдкрди рд╕рдорд░реНрдерди рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ред рдЕрдм, рдЬреЗрдПрд╕рдУрдПрди рд╕рднреА рдЧреБрд╕реНрд╕реЗ рдореЗрдВ рд╣реИ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓реЛрдВ, рд╡реЗрдм рдПрдкреАрдЖрдИ рдЗрддреНрдпрд╛рджрд┐ рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬреЗрдПрд╕рдУрдПрди рдХреЗ рд▓рд┐рдП рдЙрд╕реА рд╕реНрддрд░ рдХрд╛ рд╕рдорд░реНрдерди рд╣реЛрдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдЬреИрд╕рд╛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХреНрд╕рдПрдордПрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдерд╛ред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рдпрд╣ рдереЛрдбрд╝рд╛ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Microsoft рдЗрд╕рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдордВрдЪ рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

@lemire рдореИрдВ рдЬрд▓реНрдж рд╣реА рдкрд╛рдпрдерди рдХреА рдЬрд╛рдБрдЪ рдХрд░реВрдБрдЧрд╛ред рдХрд┐рд╕ рдмрд┐рдВрджреБ рдкрд░ рдореБрдЭреЗ рдпрд╛ рддреЛ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдЯ-рдЗрди рд╣реИ, рдпрд╛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЕрдЧрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рддреЛ рдореБрдЭреЗ рдмрд╣реБрдд рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрддрд╛ред рдореИрдВ рдЕрднреА рдЬреЛ рдЪрд╛рд╣рд┐рдП рдЙрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ NJsonSchema рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдареАрдХ рдКрдкрд░ рд╕реЗ, рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдмреЗрдХрд╛рд░ рд╣реИред рд╣рд╛рдБ, рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдЬреЛ рдЧреБрдгрд╡рддреНрддрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ рднреА JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рд╣реИ рдФрд░ рд╣рд░ рдЬрдЧрд╣ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдЗрдП рд╣рдо рд╕рднреА рдмрд┐рдирд╛ рдХрд┐рд╕реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╡рд╛рд▓реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдпрд╛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреИрдХреЗрдЬ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░реЗрдВред .NET рдХреЛ рд╕рд┐рд░реНрдл рдкрд╛рдпрдерди рдЬреИрд╕реЗ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реЗ рдореЗрд▓ рдирд╣реАрдВ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрдиреНрд╣реЗрдВ рд▓реАрдХ рд╕реЗ рд╣рдЯрдХрд░ рдЙрдЪрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд╕рд╛рде рдЧреБрдгрд╡рддреНрддрд╛рдкреВрд░реНрдг рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЗрд╕рдиреЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред рдЬрд╣рд╛рдВ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рд╡рд╣рд╛рдВ рд╣рд░ рдХреЛрдИ .NET рд╕реЗ рдирдлрд░рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдкрд╛рдЗрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдиреЗ рдЧреМрд░ рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди, рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧ рдЬрд╣рд╛рдЬ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЕрдкрдиреЗ рдмреЙрд╕ рдХреЛ рдмрддрд╛рдирд╛ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рд╕рд░рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╕реЗрдВрд╕ рдЦрд░реАрджрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ JSON рдХреЛ рдорд╛рдиреНрдп рдХрд░рдирд╛ рдЙрдбрд╝рд╛рди рдирд╣реАрдВ рднрд░реЗрдЧрд╛ред рдмрджрд▓реЗ рдореЗрдВ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓реЗрдЧрд╛, рдпрд╣ рд╕рд╡рд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ .NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЗрд╕ рддрдереНрдп рдкрд░ рдХрднреА рдзреНрдпрд╛рди рди рджреЗрдВ, рдХрд┐ рдпрд╣ рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ, рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ NJsonSchema рдмрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдврд╛рдВрдЪреЗ рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдЪреВрдХ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдХрд┐ JSON рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдХрд╛рдо рдкрд░ JSON рд╕реНрдХреАрдорд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдзреЗ рдЕрдЪреНрдЫреЗ JSON рдкрд╛рд░реНрд╕рд░ + JSON рд╕реНрдХреАрдорд╛ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдЪреНрдЫрд╛ JSON рдкрд╛рд░реНрд╕рд░ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ AFAIK JSON рд╕реНрдХреАрдорд╛ рдЕрднреА рдПрдХ _draft_ 7 рд╣реИред рддреЛ рдЬреЗрдПрд╕рдУрдПрди рд╕реНрдХреАрдорд╛ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ рдЬреЛ рд╕реНрдХреАрдорд╛ рдХреЗ рд╕рд╛рде рдЬрд▓реНрджреА рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд░реЛрдбрдореИрдк рдореЗрдВ JSON рд╕реНрдХреАрдорд╛ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

@ рдЬреЗрдорд┐рд▓рд░0

рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ JSON рдХреЗ рд▓рд┐рдП рдЙрд╕реА рд╕реНрддрд░ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИ рдЬреЛ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рд░реВрдк рд╕реЗ XML рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерд┐рдд рдерд╛ред

.Net рдореЗрдВ XSLT рдФрд░ XPath рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред рдпрджрд┐ рдЖрдк "рд╕рдорд╛рди рд╕реНрддрд░ рдХрд╛ рд╕рдорд░реНрдерди" рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ JSON рдХреЗ рд▓рд┐рдП рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╕рдВрд╕реНрдХрд░рдг рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА?

рдореИрдВ рдЬреЛ рдХрд╣рдирд╛ рдЪрд╛рд╣ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╣реИ: JSON рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ XML рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рджреЛрдиреЛрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рд╣реИрдВ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рд╕рдВрдЦреНрдпрд╛рдПрдВ рдФрд░ рдорд╛рдирдХреАрдХрд░рдг рд╕реНрддрд░ рд╣реИрдВред рд╕рд╛рде рд╣реА, NuGet, git рдпрд╛ GitHub рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ XML рдХреЛ .Net рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдЬрдХрд▓, рдХрд┐рд╕реА рддреГрддреАрдп рдкрдХреНрд╖ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдФрд░ рдЕрдзрд┐рдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред

рддреЛ, рдирд╣реАрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдБрдЦ рдмрдВрдж рдХрд░рдХреЗ рдпрд╣ рдХрд╣рдирд╛ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдХрд┐ "XML рдХреЗ рдкрд╛рд╕ рдпрд╣ рдерд╛, рдЗрд╕рд▓рд┐рдП JSON рдХреЗ рдкрд╛рд╕ рднреА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП"ред

рд╕рд╛рде рд╣реА, рд╕рддреНрдпрд╛рдкрди рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдСрд░реНрдереЛрдЧреЛрдирд▓ рд╣реИред рдореИрдВ рдХреБрдЫ рдмрд┐рдВрджреБ рдкрд░ рд╕рддреНрдпрд╛рдкрди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдмрд┐рд▓реНрдХреБрд▓ рдареАрдХ рд╣реЛ рдЬрд╛рдКрдВрдЧрд╛ (рд╕рдВрднрд╡рддрдГ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреИрдХреЗрдЬ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ)ред рд▓реЗрдХрд┐рди рдЙрдЪрд┐рдд рдкрд╛рд░реНрд╕рд┐рдВрдЧ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред

рд╣рдореЗрдВ рдПрдкреАрдЖрдИ рдЖрд░рдИрдПрд╕рдЯреА рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рдЦреНрдд рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдмрд┐рдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ json рдХреЛ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ рд╣рдо рдЗрд╕реЗ JS рдореЗрдВ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХреНрдпреЛрдВрдХрд┐ рдкреАрдЫреЗ рд╡рд╛рд▓реЗ рдХреЙрдорд╛ рдЖрджрд┐ред

рдФрд░ рдЖрдк рдЕрднреА рдЙрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдорд╛рдиреНрдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ?

@ phillip-haydon @ freerider7777 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рднреНрдп JSON рдкрд╛рд░реНрд╕рд░ рдХреЛ JSON рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЬрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЧрдард┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рддреНрд░реБрдЯрд┐рдпреЛрдВ (рдФрд░/рдпрд╛ рдЪреЗрддрд╛рд╡рдирд┐рдпрд╛рдВ) рдлреЗрдВрдХрдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдЗрд╕рдореЗрдВ рдкрд┐рдЫрд▓реА рдХреЙрдорд╛ рд╣реЛрддреА рд╣реИ)ред рдпрд╣ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рддреНрдпрд╛рдкрди рд╕реЗ рднреА рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдПрдХ рд╕реНрдХреАрдорд╛ рдХреЗ рд╕рд╛рде JSON рдбреЗрдЯрд╛ рдХреА рддреБрд▓рдирд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо, рдЗрд╕ рддрд░рд╣ рдореИрдВ рд╢рд░реНрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ)ред

https://tools.ietf.org/html/rfc7159

рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ, рдЬреЛ рд╡рд╣рд╛рдВ рдХреА рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХрдВрдкрдирд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдХреЗ рдкрд╛рд╕ рд╕рддреНрдпрд╛рдкрди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рдирд╣реАрдВ рд╣реИред рдПрдХ рддреЗрдЬрд╝ рдкрд╛рд░реНрд╕рд░ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЕрдорд╛рдиреНрдп JSON рдХреЛ рдкреНрд░рдХрд╛рд╢ рдХреА рдЧрддрд┐ рд╕реЗ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рджреЗрдЧрд╛ред :-) рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдХрд┐ рддреЗрдЬреА рд╕реЗ рд╕рддреНрдпрд╛рдкрди рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ ASP.NET Core рдХреА рддрд░рд╣ рд╣реА рд╣реИ, рдЬреЛ рд╡реЗрдм рдлреЙрд░реНрдо рдореЗрдВ рддреЗрдЬреА рд╕реЗ рдбрд╛рдЙрди рдбрд╛рдЙрди рдЕрдкрдЧреНрд░реЗрдб рд╣реИред

рдФрд░ рдЖрдк рдЕрднреА рдЙрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдорд╛рдиреНрдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ?
@ рдлрд┐рд▓рд┐рдк-рд╣реЗрдбрди рдРрд╕реЗ рдЬреЗрд╕рди рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рдХ рдХреЛрдб рдореЗрдВ:
ModelState.IsValid == true

тАНтЩВя╕П

рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА NSwag + System.ComponentModel.DataAnnotations рд╕рд╛рде рдЕрдкрдиреЗ json рд╕реНрдХреАрдорд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рддреНрдпрд╛рдкрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

<Project Sdk="Microsoft.NET.Sdk" >
  <ItemGroup>
    <PackageReference Include="NSwag.MsBuild" Version="12.0.10" />
  </ItemGroup>
  <ItemGroup>
    <Compile Remove="**\*.g.cs" />
  </ItemGroup>
  <ItemGroup>
    <SchemaFiles Include="$(MSBuildProjectDirectory)\..\schema\*.json" InProject="false" />
    <EmbeddedResource Include="$(MSBuildProjectDirectory)\..\schema\*.json" LinkBase="Messages\Schema" />
  </ItemGroup>
  <Target Name="GenerateMessageContracts" BeforeTargets="GenerateAssemblyInfo">
    <Exec Command="$(NSwagExe_Core21) jsonschema2csclient /name:%(SchemaFiles.Filename) /namespace:MyNamespace.Messages /input:%(SchemaFiles.FullPath) /output:$(MSBuildProjectDirectory)/Messages/%(SchemaFiles.Filename).g.cs" />
    <ItemGroup>
      <Compile Include="**\*.g.cs" />
    </ItemGroup>
  </Target>
</Project>

рдореИрдВ @lemire рд╕реЗ рд╕рд╣рдордд @poke рдХреА рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ)ред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЗрд╕реЗ рд╕рднреА рдШрдВрдЯрд┐рдпреЛрдВ рдФрд░ рд╕реАрдЯреА рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдЗрд╕реЗ рдПрдХ рдШрдЯрд┐рдпрд╛ рдЙрддреНрдкрд╛рдж рдмрдирд╛рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди 4 рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реБрдЖ рдерд╛?

рдХреНрдпрд╛ System.Text.Json.Serialization.Policies.JsonValueConverter рдмрдирд╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ?Json.net рд╕реЗ рдХрдирд╡рд░реНрдЯрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ?

рдХреНрдпрд╛ System.Text.Json nuget рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░реНрдг .Net рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╢рд┐рдк рд╣реЛрдЧрд╛? рдкреВрд░реНрдг рдЗрдВрдЯрд░рдСрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ рд╕реЗ рд▓рд╛рднреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

System.Text.Json рдХреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ OOB рд╢рд┐рдкрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП netstandard2.0 рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рд╛ рдЧрдпрд╛ рдерд╛; https://github.com/dotnet/corefx/pull/37129 :

рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдЖрдкрдХреЛ .NET Core 3.0 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрди-рдмреЙрдХреНрд╕ System.Text.Json API рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдкрдХреЛ netstandard2.0 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ), рддреЛ рдЖрдк рд╣рдорд╛рд░реЗ NuGet рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ netstandard2.0 рд╕рдВрдЧрдд рд╣реИред

рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ рд╕реЗ рд▓рд╛рдн

рдпреЗ рдлрд┐рд░ рдХреНрдпрд╛ рд╣реИрдВ? рдореИрдВ

@рдЦреЗрд▓рдВрдЧ

рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ (4.5 рдпрд╛ рдЬреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рдиреНрдпреВрдирддрдо), рдорд╛рдирдХ рдФрд░ рдХреЛрд░ рд╕рд╣рд┐рдд рдХрдИ рд╕реНрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдЧреЗрдЯ рд╣реЛрдЧреАред рдмреЙрдХреНрд╕ рдЕрд╕реЗрдВрдмрд▓рд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рдЙрдкрд░реЛрдХреНрдд рд▓рд┐рдВрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдореБрджреНрджрд╛ рдЗрд╕ рдкреИрдХреЗрдЬ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ:

https://www.nuget.org/packages/System.Text.Json

рдХреНрдпрд╛ рдХреЛрдИ рд╡рд░реНрддрдорд╛рди рд╕рдорд░реНрдерд┐рдд рдкреИрдХреЗрдЬ рд╣реИ?

рдореЗрд░реА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ (4.5 рдпрд╛ рдЬреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рдиреНрдпреВрдирддрдо), рдорд╛рдирдХ рдФрд░ рдХреЛрд░ рд╕рд╣рд┐рдд рдХрдИ рд╕реНрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдирдЧреЗрдЯ рд╣реЛрдЧреАред

рдЖрдк рдЗрд╕реЗ рдХреНрдпреЛрдВ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ? рдпрджрд┐ рдмрд╣реБ-рд▓рдХреНрд╖реНрдп рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЕрд░реНрдерд╛рдд рд╕рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдорд╛рдирдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рддреЛ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд▓рдХреНрд╖реНрдп рд╣реЛрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ

рдХреНрдпрд╛ рдХреЛрдИ рд╡рд░реНрддрдорд╛рди рд╕рдорд░реНрдерд┐рдд рдкреИрдХреЗрдЬ рд╣реИ?

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕реЗ рдЕрднреА рддрдХ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкреАрдЖрд░ рдХрд╛ рд╡рд┐рд▓рдп рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рд╣реБрдЖ рдерд╛ред рд╡рд╣ рдкреИрдХреЗрдЬ рдПрдХ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реБрдЖ рдХрд░рддреА рдереА рдЬрд┐рд╕реЗ рдЕрдм рдПрдордПрд╕ рдХреЛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

@рдЦреЗрд▓рдВрдЧ рдпрд╣ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ - рдореИрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмрдпрд╛рди рджреЗ рд░рд╣рд╛ рдерд╛ред

рдпрджрд┐ рдиреЗрдЯ рдорд╛рдирдХ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдиреЗрдЯ рдХреЛрд░ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХреБрдЫ рднреА рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдЬреЛ рдиреЗрдЯ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рддреЛ рдореИрдВ рд╕рднреА рддреАрди рд╕реНрд╡рд╛рджреЛрдВ рдХреЛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рд╡рд╣реА рд╕рд╛рдорд╛рдиреНрдп рддрд░реНрдХ, рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ, рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдореБрджреНрджреЗ рд╕реЗ рдореВрд▓ рдХрдерди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмреЙрдХреНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдЙрдкрдпреБрдХреНрдд рд╕рдмрд╕реЗ рд╕рдВрдЧрдд рд╕реНрд╡рд╛рдж рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪреБрдирд╛ рдЬрд╛рдПрдЧрд╛ред рддреЛ, рдпрд╣ рдХреЛрдИ рдмрдбрд╝реА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЙрдкрднреЛрдХреНрддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╢реБрджреНрдз рдорд╛рдирдХ рд╣реИ, рддреЛ рд╢реБрджреНрдз рдорд╛рдирдХ рд╕реНрд╡рд╛рдж рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдмреЙрдХреНрд╕ рдлреНрд▓реЗрд╡рд░ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЬрдм рдореИрдВ goto definition , рддреЛ рдореБрдЭреЗ рд╡рд┐рдШрдЯрд┐рдд рд╕реНрд░реЛрдд рдорд┐рд▓рддреЗ рд╣реИрдВред рдЕрдЧрд░ рдореИрдВ рдиреЗрдЯ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ goto definition рд╣реВрдВ, рддреЛ рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рд╕реНрдЯрдм рд╕реНрд░реЛрдд рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬреЛ NotImplemented рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддреЗ рд╣реИрдВред

рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ рд╕реЗ рд▓рд╛рдн

рдпреЗ рдлрд┐рд░ рдХреНрдпрд╛ рд╣реИрдВ? рдореИрдВ

рдХрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ .NET рдХреЛрд░ рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рджреВрд░ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЗрд╕рд▓рд┐рдП рдХрд┐ .NET рдХреЛрд░ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдореИрдВ .NET рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬрдм рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИ; рдЬрдм рдореБрдЭреЗ рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ 2012 (рдиреНрдпреВрдирддрдо .NET рдХреЛрд░ 3.0 рд╕рдВрд╕реНрдХрд░рдг) рд╕реЗ рдХрдо рд╡рд┐рдВрдбреЛрдЬ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬрд┐рддрдирд╛ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ 2008 рдЖрд░ 2 рдФрд░ рдЙрд╕рд╕реЗ рдиреАрдЪреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд░реНрджрдирд╛рдХ рдирд┐рд░реНрдгрдп рдерд╛, рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рджрд░реНрджрдирд╛рдХ рдирд┐рд░реНрдгрдп рд╣реИ рдХрд┐ рд╡реЗ рдЕрдкрдЧреНрд░реЗрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ/рдЕрдХреНрд╕рд░ рдореВрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдмрд╕ рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╣рдо рдереЛрдбрд╝реЗ рдирдП рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд░ рдореИрдВ рдХрд▓ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреВрдВ рддреЛ рдореБрдЭрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдЦреБрд╢ рдХреЛрдИ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди .NET Core 3.0 рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рднреА wpf рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЙрд░реНрдо рдХреЗ рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд╕рд╛рде, Microsoft рдЕрдкрдиреА рд╕рдорд░реНрдерди рдиреАрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдПрдХ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрд╕рдВрднрд╡ рдмрдирд╛ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рд╕реА рд╕реЗ рднреА рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдЬреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЛ рд╕реБрдиреЗрдЧрд╛, рд▓реЗрдХрд┐рди рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрднреА рддрдХ рдПрдХ рдИрдореЗрд▓ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕рдВрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

@JesperTreetop рдЙрджреНрдпрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд▓рд╛рдпрдХ .NET рдХреЛрд░ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрд▓рдЯреАрдПрд╕ рд╕рдорд░реНрдерди рдХреА рдХрдореА рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рдирд╛;) рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдореЗрдВ 3.x рдкрд░ рдПрд▓рдЯреАрдПрд╕ рд╕рдорд░реНрдерди рдорд┐рд▓реЗрдЧрд╛ - рдореЗрд░реЗ рд╕рдВрдЧрдарди рдХреЗ .NET рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬреЛрд░ рджреЗ рд░рд╣рд╛ рд╣реВрдВ .NET рдХреЛрд░ рдПрдбреЙрдкреНрд╢рди рдЕрдЧрд░ рд╣рдореЗрдВ рдПрд▓рдЯреАрдПрд╕ рд╕рдкреЛрд░реНрдЯ рд╡рд╛рд▓рд╛ 3.x рд╡рд░реНрдЬрди рдорд┐рд▓рддрд╛ рд╣реИред

@marksmeltzer рдХрд▓ рд╕реЗ .NET 5 рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ .Net Core 3.1 LTS рд╣реЛрдЧрд╛ рдФрд░ рдирд╡рдВрдмрд░ 2019 рдореЗрдВ рд░рд┐рд▓реАрдЬрд╝ рд╣реЛрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдирдпрд╛ JSON рд╕реАрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд░ F# рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛?

@rliman рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрд╣ Guid рдпрд╛ Enum рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЬрд╛рдиреЗ рдХрд╛ рд▓рдВрдмрд╛ рд╕рдлрд░ рддрдп рд╣реИред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдПрдл # рд╡рд┐рдХрд▓реНрдк рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди рд╕реА # рд╢реВрдиреНрдп рдХреЗ рд╕рдорд╛рди рд╣реЛрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЖрдИрдПрдордПрдЪрдУ

рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕реЛрдЪрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЦрд░рд╛рдм рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдбрд┐рдЬрд╛рдЗрди рдирд┐рд░реНрдгрдп рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИред рдпрд╣ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╣реЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛.... рдЕрдм рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рдмрд╣реБрдд рджрд░реНрдж рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ... рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рд▓реЗрдХрд░ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдбреЗрд╡рд▓рдкрд░реНрд╕ рддрдХред

рдЗрд╕ рдирдИ "рд╕реБрд╡рд┐рдзрд╛" рдХреЛ "рд╕реБрдЪрд╛рд░реВ" рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдПрдордПрд╕ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдХрд┐рдпрд╛ рдерд╛ред рдФрд░ рдЕрдм рдЗрд╕рдХреА рдХреАрдордд рд╕рднреА рдХреЛ рдЪреБрдХрд╛рдиреА рдкрдбрд╝реЗрдЧреАред

рдиреЗрдЯ рдХреЛрд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рд╕реЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реИрдЧрди рдереЛрдбрд╝рд╛ "рддреЗрдЬ" рд╣реИ ... рдЗрд╕ рд╢реБрджреНрдз "рдлреБрд░реНрддреАрд▓реА" рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдХреЛ рдЕрдкрдиреА рд╕рд╛рдВрд╕ рдкрдХрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ ASP.NET Core рдХреЗ рд╕рд╛рде рдпреЗ "рдлреАрдЪрд░реНрд╕" (рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬреЗрд╕) рдирдП рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ рдЧрдП рд╣реИрдВред

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ ASP.NET Core рдХреЛ рдЙрдирдХреА рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреБрдирд░реНрд╡рд┐рдХреНрд░рдп рдХреА рд╕рдЦреНрдд рдЬрд░реВрд░рдд рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдмрд╛рд░-рдмрд╛рд░ рдпреЗ "рд╣рдо рдЗрд╕реЗ рдмрд╛рдж рдореЗрдВ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗ" рдлреАрдЪрд░ рдмрдирд╛рддреЗ рд░рд╣рддреЗ рд╣реИрдВред

рдореИрдВ ASP.NET рдХреЛрд░ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢реБрд░реБрдЖрддреА рдмреАрдЯрд╛ рдореЗрдВ рдерд╛... рдФрд░ рдпрд╣ .NET рдкрд░ рдПрдХ рдмрдбрд╝рд╛ рд╕реБрдзрд╛рд░ рд╣реИред

рд▓реЗрдХрд┐рди рдПрдордПрд╕ рдЯреАрдо рдХреЛ рдПрдХ рдкрд▓ рдХреЗ рд▓рд┐рдП рд░реБрдХрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реЛрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реЗ рдпрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЬрд▓реНрджрдмрд╛рдЬреА рдФрд░ рдЕрд╕рдВрдЧрдд рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдбрд┐рдЬрд╛рдЗрди рдирд┐рд░реНрдгрдпред

рдмрд╕ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ рдФрд░ рдЕрдиреНрдп рд╕реВрддреНрд░ рдкрдврд╝реЗрдВ... рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЖрд╡рд░реНрддреА рд╡рд┐рд╖рдп рд╣реИред

рддреЛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмреИрдардиреЗ рдХрд╛ рд╕рдордп рд╣реЛ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕реЛрдЪреЗрдВ рдХрд┐ рдЕрдзрд┐рдХ рд╕реНрдерд┐рд░ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИред

рдХреНрд▓рд╛рд╕рд┐рдХ .NET рдХреЛрд░ рдЬрд┐рддрдирд╛ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ... рд▓реЗрдХрд┐рди рдпрд╣ 2.0 рдХреЗ рдмрд╛рдж рд╕реЗ рдмрд╣реБрдд рд╕реНрдерд┐рд░ рдФрд░ рд╕реБрд╕рдВрдЧрдд рд╣реИред

рдПрдХрджрдо рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ред

рд╣рд╛рдп @suncodefactory ,
рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдпрд╛рдж рд╣реИ рдЬрдм рдкреАрдкреАрдПрд▓ рдиреЗ рдПрдордПрд╕ рдкрд░ рдУрдкрдирд╕реЛрд░реНрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рд▓реНрд▓рд╛рдпрд╛ рдерд╛, рдЕрдм рдЙрдиреНрд╣реЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрд╖реА рдард╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдбреА
рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрд╕реНрдкрдиреЗрдЯ/рдХреЛрд░ рдПрдорд╡реАрд╕реА рдПрдкреАрдЖрдИ рдПрдорд╡реАрд╕реА 1/2 рдХреЗ рдмрд╛рдж рд╕реЗ рдмрд╣реБрдд рд╕реНрдерд┐рд░ рд░рд╣рд╛ рд╣реИ! 2.0 рдХреЗ рдмрд╛рдж рд╕реЗ рдПрд╕реНрдкрдиреЗрдЯ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ рдпрд╣ рдХрднреА рднреА рдирд╣реАрдВ рдмрджрд▓рд╛/рд╕реБрдзрд╛рд░рд╛ред
рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдПрдХ рдХреНрд░рдорд╛рдВрдХрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рд╣реИ рдФрд░ рд╢рд╛рдпрдж рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ, рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╕рднреА рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╕рднреА рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, imo рдпрд╣ рд╣реИ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд╕рдорд╕реНрдпрд╛, рдФрд░ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЧрд▓рдд рддрд░реАрдХрд╛ред
рд╕реНрдкрд╖реНрдЯрддрд╛, рдкрд┐рдЫрдбрд╝реА рд╕рдВрдЧрддрддрд╛ рдФрд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрд░реЗ рд╕реАрд░рд┐рдпрд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдбреАрдЯреАрдУ рдХреЛ рдбреНрд░рд╛рдЗрд╡ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╣реБрдд рдЕрд▓рдЧ рд╡реНрдпрд╛рдкрд╛рд░ рдмрдВрдж (рд╡реЗ рдирд┐рдЬреА рд╣реИрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд░реНрдп рд╣реИрдВ, рдЖрджрд┐ ..)

рд╣рдо рдкреНрд░реВрдбрдХреНрдЯ рдЯреАрдореЛрдВ рдХреЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд┐рдирд╛ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЛ рдиреЗрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рд▓рд┐рдирдХреНрд╕ (рдиреЗрдЯ рдХреЛрд░) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рддреБрдо рд▓реЛрдЧ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реЛред Microsoft рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд▓рдВрдмрд┐рдд рд╣реИрдВред

рд╣рд╛рдп @suncodefactory ,
рдореБрдЭреЗ рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ рдпрд╛рдж рд╣реИ рдЬрдм рдкреАрдкреАрдПрд▓ рдиреЗ рдПрдордПрд╕ рдкрд░ рдУрдкрдирд╕реЛрд░реНрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рд▓реНрд▓рд╛рдпрд╛ рдерд╛, рдЕрдм рдЙрдиреНрд╣реЗрдВ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛрд╖реА рдард╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рдбреА

рдореЗрд░реЗ рд▓рд┐рдП рдмрд╛рдд рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ ... рдпрд╣ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдбрд┐рдЬрд╛рдЗрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ рдХрдореА рд╣реИ рдпрд╛ рд╕рд┐рд░реНрдл рд╕рд╛рджрд╛ рдЧрд▓рдд рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВрдиреЗ рдХреНрд▓рд╛рд╕рд┐рдХ рдПрдПрд╕рдкреАрдиреЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрднреА рдмрд╛рдд рдирд╣реАрдВ рдХреА ... рдореИрдВ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ 2.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред рдФрд░ рдЗрд╕рдХреЗ рд╕реНрдерд┐рд░ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдХреЛрдИ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдерд╛ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЭреВрдард╛ рджрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЪреВрдВрдХрд┐ .net рдХреЛрд░ .NET 4.6.1 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ)ред рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рдерд╛ рдХрд┐ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпреЛрдЬрдирд╛рдмрджреНрдз рдФрд░ рд╕реНрдерд╛рдкрддреНрдп рдерд╛ред

рдХреНрд▓рд╛рд╕рд┐рдХ рдПрдПрд╕рдкреАрдПрдирдЯреА рдПрдорд╡реАрд╕реА рдмрдирд╛рдо рдПрд╕реНрдкрдиреЗрдЯ рдХреЛрд░ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдзрд╛рдЧреЗ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред

рдпрд╣ рдзрд╛рдЧрд╛ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬрд┐рд╕реЗ рдПрдордПрд╕ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реЛрдЪреЗ рдмрд┐рдирд╛ рд╢рд┐рдк рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рд╣рдо рдкреНрд░реВрдбрдХреНрдЯ рдЯреАрдореЛрдВ рдХреЗ рд▓рдЧрднрдЧ рдХрд┐рд╕реА рднреА рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд┐рдирд╛ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЛ рдиреЗрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рд▓рд┐рдирдХреНрд╕ (рдиреЗрдЯ рдХреЛрд░) рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рддреБрдо рд▓реЛрдЧ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реЛред Microsoft рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд▓рдВрдмрд┐рдд рд╣реИрдВред

рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП.... рддреЛ рдХреНрдпрд╛ рдЖрдк рдмрджрд▓рд╛рд╡ рдХреЛ рддреЛрдбрд╝рдХрд░ рдЦреБрд╢ рд╣реИрдВ?

рдФрд░ рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ рдПрдПрд╕рдкреАрдиреЗрдЯ рдХреЛрд░ рдЯреАрдо рд╢рд┐рдкрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рдмрд╕ рд╕рдЪ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдмреАрдЯрд╛ 3 рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдПрд╕рдкреАрдиреЗрдЯ рдХреЛрд░ рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХрдореА рд╣реИред

рдХреНрд▓рд╛рд╕рд┐рдХ рдмрдирд╛рдо рдПрдПрд╕рдкреАрдиреЗрдЯ рдХреЛрд░ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИ ... рдореБрдЭреЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рднреА рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИред

рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рдПрдПрд╕рдкреАрдиреЗрдЯ рдХреЛрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ рдорд╣рд╛рди рдиреМрдХрд░реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдбрд┐рдЬрд╛рдЗрди рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╡реЗ рджреЛрдиреЛрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╡рд┐рд╖рдп рд╣реИрдВред

рдХреНрдпрд╛ рд╣рдо рдЗрд╕ рдЪрд░реНрдЪрд╛ рдХреЛ .NET Core 3 рдореЗрдВ JSON рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП.... рддреЛ рдХреНрдпрд╛ рдЖрдк рдмрджрд▓рд╛рд╡ рдХреЛ рддреЛрдбрд╝рдХрд░ рдЦреБрд╢ рд╣реИрдВ?

рддреЛ рдХреНрдпрд╛ рдХреЛрдИ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдХрд┐ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рдФрд░ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рдФрд░ рдмреЗрд╣рддрд░ рд╣реЛ, рддреЛ рдЖрдк рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рднреА рдХреНрдпреЛрдВ рд╣реИрдВ?

@suncodefactory

рдЗрд╕ рддрд░рд╣ рдХреЗ рдмрджрд▓рд╛рд╡ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП.... рддреЛ рдХреНрдпрд╛ рдЖрдк рдмрджрд▓рд╛рд╡ рдХреЛ рддреЛрдбрд╝рдХрд░ рдЦреБрд╢ рд╣реИрдВ?

рдЖрд╣, рдЪрд▓реЛ, рдЖрдк рдЗрд╕реЗ "рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ" рдХреА рддрд░рд╣ рдзреНрд╡рдирд┐ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕реНрдХреНрд░реИрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдПрдПрд╕рдкреА.рдиреЗрдЯ рдХреЛрд░ 2.x/3.0 рдореЗрдВ рдХрд┐рддрдиреЗ рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдереЗ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЧрд┐рди рд╕рдХрддреЗ рд╣реИрдВ . рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

  • рдПрдХ рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХрд╛ рд╕рдВрджрд░реНрдн
  • рднрд┐рдиреНрди рдирд╛рдорд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
  • рдХреЛрдб рдХреА 5 рд╕реЗ рдЕрдзрд┐рдХ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдмрджрд▓рдирд╛
  • рдХреЛрдб рдХреА 1-2 рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ (рдЕрд░реНрдерд╛рдд рд╡рд┐рдХрд▓реНрдк рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдЧреБрдг)

??

@suncodefactory

рдпрд╣ рдзрд╛рдЧрд╛ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдмрджрд▓рд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рдЬрд┐рд╕реЗ рдПрдордПрд╕ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реЛрдЪреЗ рдмрд┐рдирд╛ рд╢рд┐рдк рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ _рдмреНрд░реЗрдХрд┐рдВрдЧ_ рдкрд░рд┐рд╡рд░реНрддрди рдХреИрд╕реЗ рд╣реИ? рдирдпрд╛ JSON API рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдпрд╛ API рдХрд╛ рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕реЗ .NET Core рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рди рддреЛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рд╕рд╛рдорд╛рди рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИ рдФрд░ рди рд╣реА рддреЛрдбрд╝рддрд╛ рд╣реИред рд╣рд╛рдВ, рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЪреАрдЬреЗрдВ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдВрддрддрдГ рдЗрд╕рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдХреВрд▓рди рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

ASP.NET Core рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмреЛрд▓рддреЗ рд╣реБрдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ _тАЬрдЗрд╕рдХрд╛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдереНрд░реЗрдб рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИтАЭ_, рдпрджрд┐ рдЖрдк рдЗрд╕рдХреА рдХреБрдЫ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ Newtonsoft.Json рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╣рд╛рдВ, рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЛрдб рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЯреВрдЯ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдРрд╕рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдм рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ: рдЖрдкрдХреЗ рдкрд╛рд╕ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рдирд╛рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдЪрд┐рдкрдХреЗ рд░рд╣реЗрдВ рдЬреЛ рдЬреНрдЮрд╛рдд, рд╕реНрдерд┐рд░ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рдлреАрдЪрд░ рд╕реЗрдЯ рд╣реИред рд╡рд╣ рд╡рд╣рд╛рдВ рдХрд╛рдлреА рджреЗрд░ рддрдХ рд░рд╣реЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЙрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдирдП-рдирдП-рд╡рд┐рд░реЛрдзреА рдПрдЬреЗрдВрдбреЗ рдХреЛ рдлреИрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдВ, рдЬрдм _тАЬрдЗрд╕рдХрд╛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдзрд╛рдЧреЗ рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИтАЭ_ред

рдИрдПрдл рдХреЛрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рджреЛ рдкреНрд░рд╢реНрдиред

  1. рдХреНрдпрд╛ System.Text.Json рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛? рдИрдПрдл рдХреЛрд░ рдбреЗрдЯрд╛ рдореЗрдВ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрдн рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдиреЗрд╡рд┐рдЧреЗрд╢рдирд▓ рд▓рд┐рдВрдХ рджреЛрдиреЛрдВ рддрд░рдл рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред Json.NET рдЗрд╕реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ:
    c# var json = JsonConvert.SerializeObject(entities, new JsonSerializerSettings() { PreserveReferencesHandling = PreserveReferencesHandling.Objects, ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
  2. рдирд┐рдЬреА рдмрд╕рдиреЗ рд╡рд╛рд▓реЛрдВ рдФрд░ рдирд┐рдЬреА рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдбреАрдбреАрдбреА-рд╢реИрд▓реА рд╡рд╛рд▓реЗ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдЙрджрдп рдХреЗ рд╕рд╛рде System.Text.Json рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ deserialize рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

@ рдЬреЛрдирдкреАрдПрд╕рдорд┐рде рдЖрдИрдПрдордУ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рдЖрдкрдХреЛ рдХрднреА рднреА рдХрд┐рд╕реА рдЗрдХрд╛рдИ рдХреЛ рд╕реАрдзреЗ рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдкрдХреЛ рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрднреЛрдВ рд╕реЗ рдмрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдк рдЗрдХрд╛рдИ рдореЗрдВ рдЕрдзрд┐рдХ рдЧреБрдг рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬреЛ рдЕрдВрддрддрдГ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

@ рдЬреЛрдирдкреАрдПрд╕рдорд┐рде : рдЗрдореНрд╣реЛ рджреЛрдиреЛрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рдФрд░ рдбреАрдбреАрдбреА рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЕрдорд╛рдиреНрдп рд╣реИрдВред

  1. рдореИрдВрдиреЗ рдХрднреА рднреА рдПрдХ рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ рдЬреЛ рд╕реАрдзреЗ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝рд┐рдВрдЧ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИ (рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрдн рд╣рдореЗрд╢рд╛ рдПрдХ рдХреАрдордд рдкрд░ рдЖрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рд╡рд╕реНрддреБрдУрдВ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ: рд╕реНрдореГрддрд┐ рдЖрд╡рдВрдЯрди рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реАрдкреАрдпреВ рдЪрдХреНрд░ред рд▓реЗрдХрд┐рди рдирдИ JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдПрдХ рдореЗрд▓ рд▓рдХреНрд╖реНрдп рдЗрди рдореЗрдореЛрд░реА рдЖрд╡рдВрдЯрди рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рдмрдЪрдирд╛ рд╣реИ
  2. рдЕрдорд╛рдиреНрдп рднреА, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХрднреА рднреА рдХрд┐рд╕реА рдбреЛрдореЗрди рдореЙрдбрд▓ рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рддрдм рдирд╣реАрдВ рдЬрдм рдЖрдкрдХреЛ рд╡реЗрдм рдЕрдиреБрд░реЛрдз рдЬреИрд╕реЗ рд╡реЗрдмрдПрдкреА рдХреЙрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдбреАрдбреАрдбреА рдореЗрдВ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдИрд╡реЗрдВрдЯ/рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдкрдиреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрдорд╛рдВрдб рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП, рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рд╕реЗ рдЗрдХрд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ (рдФрд░ рдирд┐рд░реНрдЬрд▓реАрдХрд░рдг) рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдУрдЖрд░рдПрдо рдореИрдкрд┐рдВрдЧ рдпрд╛ рдЗрд╡реЗрдВрдЯ рд╕реЛрд░реНрд╕рд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ), рдХрдорд╛рдВрдб рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЗрд╕реЗ рдЬрд╛рд░реА рд░рдЦреЗрдВред

рдЙрд╕рдХреЗ рдКрдкрд░, рдирдпрд╛ JSON API рдЙрдЪреНрдЪ рдкреНрд░рджрд░реНрд╢рди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИред рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рд╕рдореГрджреНрдз рдлреАрдЪрд░ рд╕реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЖрдк (рдФрд░ рдЪрд╛рд╣рд┐рдП) рдЕрднреА рднреА JSON.NET рдпрд╛ рдЬреЛ рдХреБрдЫ рднреА рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

@suncodefactory рдпрд╣ рдПрдХ рдмреНрд░реЗрдХрд┐рдВрдЧ рдЪреЗрдВрдЬ рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред рдЕрднреА, ASP.NET Core 2.2 рдореЗрдВ, JSON.NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ Newtonsoft.Json рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдЯрдХрд░рд╛рд╡ рдкреИрджрд╛ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ; рдпрджрд┐ ASP.NET Core 3.0 рдХреЛ JSON.NET 12.x рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╡рд╣рд╛рдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдЧреАред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Microsoft.Extensions.Configuration.Json 2.2.0 рджреЗрдЦреЗрдВ - рдЗрд╕рдХреА Newtonsoft.Json 11.0.2 рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдкреИрдХреЗрдЬ рд╣реИ; HTTP рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдпрд╛ ASP.NET Core MVC рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред рдпрд╛ Microsoft.IdentityModel.Protocols.OpenIdConnect рджреЗрдЦреЗрдВ , рдЬреЛ JSON рд╡реЗрдм рдЯреЛрдХрди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рдпрд╣ рдПрдХ рдЧрд░реНрдо рдкрде рд╣реИ рдЬрд┐рд╕реЗ рдпрдерд╛рд╕рдВрднрд╡ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред JSON.NET рдХрд┐рд╕реА рднреА рдорд╛рдирдХ рд╕реЗ рдзреАрдореА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреА рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рди, рд╕реБрд╡рд┐рдзрд╛-рд╕рдореГрджреНрдзрд┐ рдФрд░ рд╕рдорд░реНрдерди рдХреЗ рдмреАрдЪ рд╕рдВрддреБрд▓рди рдмрдирд╛рддрд╛ рд╣реИред Microsoft рдХреА рдирдИ JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ JSON.NET рдореМрдЬреВрдж рд╣реИред рддреЛ рдпрд╣ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдореВрд▓ рдмрд╛рддреЗрдВ рд╕рдВрднрд╛рд▓рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

System.Runtime.Serialization.Json рдореЗрдВ .NET рдХрд╛ рд╣рдореЗрд╢рд╛ рдЕрдкрдирд╛ JSON рдХреНрд░рдорд╛рдВрдХрди рд╕рдорд╛рдзрд╛рди рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди .NET Core рдХреА рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рд╡рд╛рд▓реА рджреБрдирд┐рдпрд╛ рдореЗрдВ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдкреНрд░рдорд╛рдг-рдкрддреНрд░ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПред рдЖрдзреБрдирд┐рдХ UTF-8 рдбреЗрдЯрд╛ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдФрд░ рдиреНрдпреВрдирддрдо рдЖрд╡рдВрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ JSON рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдЖрдк рдЕрднреА рднреА рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ Newtonsoft.Json рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ, рдФрд░ рдЗрд╕реЗ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдЕрдиреБрд░реЛрдз/рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд░рдорд╛рдВрдХрди/рдХреНрд░рдордмрджреНрдзрддрд╛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗред рдФрд░ рдЕрдм рд╕реЗ, рдЖрдк рдЗрд╕ рдмрд╛рдд рдХреА рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдХрд┐ рдХреЛрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕рднреА рдХреА рдЬреАрдд рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж @ рдлрд┐рд▓рд┐рдк-рд╣реЗрдбрди рдФрд░ @TsengSR рдЖрдкрдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдПред рдореИрдВ рдкреВрдЫ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдЗрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рд╕рдордЭрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП Json.NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдИрдПрдл рдХреЛрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз/deserializing рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВред рдореЗрд░реЗ рдкрд╛рд╕ рдбреАрдбреАрдбреА-рд╢реИрд▓рд┐рдпреЛрдВ рдИрдПрдл рдХреЛрд░ рдЗрдХрд╛рдИ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз/deserializing рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдз рдХрд╛рд░рдг рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЙрддреНрдкрд╛рджрди рд╕реЗ рдмреАрдЬ рдХрд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЙрддреНрдкрд╛рджрди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗрдиреЗ, рдХрд┐рд╕реА рднреА рдирд┐рдЬреА рдбреЗрдЯрд╛ рдХреЛ рдЕрдЬреНрдЮрд╛рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реНрдиреИрдкрд╢реЙрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмреАрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдореБрдЭреЗ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА рдФрд░ рдХреЗрд╡рд▓ рдЙрдирдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреА рдУрдкрди-рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА EfCore.TestSupport рдореЗрдВ рдмрдирд╛рдпрд╛ рддрд╛рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ (рдФрд░ рдореЗрд░реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рднреБрдЧрддрд╛рди рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛)ред

рдХреНрдпрд╛ [DataContract] , [DataMember] рдФрд░ рджреЛрд╕реНрддреЛрдВ рдХреЛ рд╕рдорд░реНрдерди рджреЗрдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?

рдЖрдЬ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз/deserialize (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдирд╛рдо) рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдХреНрд░рдордмрджреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд▓рд╛рддрд╛ рд╣реИред

рд╡рд░реНрддрдорд╛рди JsonNamingPolicy рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реЗрддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╕рджрд╕реНрдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред

рдирдорд╕реНрддреЗред
рд╣рдордиреЗ рдЕрдкрдиреА рдорд╛рдЗрдХреНрд░реЛ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ 3 рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди 6 рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рд╣рдо рдЕрдкрдиреЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдВрджрд░реНрдн рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реИрдВ: рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЧреБрдгреЛрдВ рд╡рд╛рд▓рд╛ рд╡рд░реНрдЧ (рдХреЛрдИ рд╕реЗрдЯрд░реНрд╕ рдирд╣реАрдВ) рдФрд░ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ред Json.net рдЗрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ System.Text.Json API рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдореБрджреНрджрд╛ рд╣реИ рдпрд╛ рдпрд╣ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ?
рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

@agjini рджреЗрдЦреЗрдВ https://github.com/dotnet/corefx/issues/38569

рдзрдиреНрдпрд╡рд╛рдж @рдЦреЗрд▓рдВрдЧред
рд╕рдорд░реНрдерди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИ рд▓реЗрдХрд┐рди 3.0 рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреЙрдЯрдиреЗрдЯ рдХреЛрд░ 3 рдХреЗ рд╕рд╛рде Json.net рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ (рдкреИрдХреЗрдЬ рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ)ред рдХреНрдпрд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рд╣реИ?

@agjini :

C# services.AddControllers() .AddNewtonsoftJson()

рджреЛрд╕реНрддреЛрдВ, рдЖрдкрдХреЗ рд╕рд╣рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ !
рдореИрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдЧрд╛рдЗрдб рд╕реЗ рдЪреВрдХ рдЧрдпрд╛ рд╣реВрдБ рдЬрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

https://docs.microsoft.com/fr-fr/aspnet/core/migration/22-to-30?view=aspnetcore-2.2&tabs=visual-studio

IMO json.net рдЖрдзрд╛ рдмреЗрдХ рдХрд┐рдпрд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ (рдпрд╛рдиреА рд╕рд┐рдЧреНрдирд▓рд░ рдХреЗ рд▓рд┐рдП) рдмрдирд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдореМрдЬреВрджрд╛ рдХреЛрдб рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред

рджреВрд╕рд░реА рдУрд░, .NET рдХреЛрд░ 2.2 рд╕реЗ 3.0 рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдирд╛ рдПрдХ рдкреНрд░рдореБрдЦ рд╕рдВрд╕реНрдХрд░рдг рдЕрдкрдЧреНрд░реЗрдб рд╣реИ рдФрд░ рднрд▓реЗ рд╣реА .NET рдХреЛрд░ рдЯреАрдо рд╕рд┐рдореЗрдВрдЯрд┐рдХ рд╡рд░реНрдЬрдирд┐рдВрдЧ рдХрд╛ рд╕рдЦреНрддреА рд╕реЗ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реЛ, рдореИрдВ рд╕реНрдкрд╖реНрдЯ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рджреВрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рддреЗ рд╕рдордп рдЪреАрдЬреЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред (рдЬреИрд╕реЗ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдиреНрдпреВрдЯрдирд╕реЙрдлреНрдЯ рдХреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рдирд╛)

рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдПрдХ рдШреЛрд╖рдгрд╛ рд╣реИ рди рдХрд┐ рдХреЛрдИ рдореБрджреНрджрд╛

рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдореБрджрд╛рдп рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрд╣реБрдд рд╕рд╛рд░реА рдЖрд╡рд╛рдЬреЗрдВ рд╣реИрдВ, рдПрдХ рдирдП рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ, рдЦрд░рд╛рдм рдЧрддрд┐ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рднреА рдХрд╣рд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛ рднреА рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБрдПрдВ рд╣реЛрдВред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдПрдорд╡реАрд╕реА-рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ Json.NET рдЬреЛрдбрд╝рдХрд░ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ ReadAsAsync<> рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдЕрдм Microsoft.AspNet.WebApi.Client рдХреА рд╕рд╣рдХрд░реНрдореА-рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдХрд╣реАрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ System.Text.Json рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ

рд╣рдо рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ .NET рдорд╛рдирдХ рдХрдХреНрд╖рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рд╣рдорд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рдордВрдЪ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХреЗрдВ рдЬреЛ .NET рдорд╛рдирдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╣рдореЗрдВ рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ System.Text.Json рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред .NET рдорд╛рдирдХ рдореЗрдВ System.Text.Json рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрдпрд╛ рдпреЛрдЬрдирд╛ рд╣реЛрдЧреА?

@ рдЕрд▓рд╕рд╛рдореА

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд╕реНрддреБрдПрдВ рд╣реЛрдВред

рдХреНрдпрд╛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рджреВрд╕рд░реЛрдВ рдХреЛ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдирдП рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕реНрдорд╛рд░реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ (рдЬреИрд╕реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╕рдВрдЧреНрд░рд╣ рдФрд░ рд░реЛрд╕рд▓рд┐рди)? рдпрджрд┐ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдордиреЗ рдЖрдкрдХреЛ рдЖрдЧрд╛рдореА JsonDocument DOM API рдХреЗ рд╕рд╛рде рдХрд╡рд░ рдХрд┐рдпрд╛ рд╣реИред

@mwoo-o

.NET рдорд╛рдирдХ рдореЗрдВ System.Text.Json рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрдпрд╛ рдпреЛрдЬрдирд╛ рд╣реЛрдЧреА?

рдпрд╣ .NET рдорд╛рдирдХ 2.0: System.Text.Json рдХреЗ рд▓рд┐рдП NuGet рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

@terrajobst

рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ System.Text.Json .NET рдорд╛рдирдХ SDK рдореЗрдВ рдХрдм рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдХреНрдпрд╛ .NET рдорд╛рдирдХ 3.0 (рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдмрд╛рдж рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг) рдореЗрдВ System.Text.Json рдкреИрдХреЗрдЬ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рдпрд╣ .NET Core 3.0 SDK рдкреНрд░реЛрдбрдХреНрд╢рди рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╣реЛрдЧрд╛?

@terrajobst

рдХреНрдпрд╛ Deserialize рд╡рд┐рдзрд┐ рдХреЛ PipeReader рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ? рдпрд╛ рдкреИрдЪ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбрд┐рд╕реЗрд░рд┐рдПрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рдкрд░ рд╕рднреА рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдкреАрдЖрдИ рдХрд╛ рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИ:

private async ValueTask<T> Deserialize<T>(PipeReader reader, CancellationToken cancellationToken) 
    where T: new()
{
    T model = new T();
    while (!cancellationToken.IsCancellationRequested)
    {
        ReadResult readResult = await reader.ReadAsync(cancellationToken);
        ReadOnlySequence<byte> buffer = readResult.Buffer;

        if (readResult.IsCanceled) break;
        if (buffer.IsEmpty && readResult.IsCompleted) break;

        SequencePosition consumed = JsonSerializer.Patch(model, buffer, readResult.IsCompleted);
        reader.AdvanceTo(consumed, buffer.End);               
    }

    return model;
}

public SequencePosition Patch<T>(T model, ReadOnlySequence<byte> jsonData, bool isFinalBlock, JsonSerializerOptions options = null)
{
      ...            
}

@terrajobst

рджреВрд╕рд░реЛрдВ рдХреЛ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреА рдХреНрд╖рдорддрд╛

рдЕрднреА рдпрд╣реА рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд┐рд░реНрдл 'рдбреЗрдЯрд╛-рдЯреНрд░рд╛рдВрд╕рдлрд░-рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕' рдХреЗ рд▓рд┐рдП рд╣реИред рдмрдврд╝рд┐рдпрд╛ рдЦрдмрд░!

@mwoo-o

рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ System.Text.Json .NET рдорд╛рдирдХ SDK рдореЗрдВ рдХрдм рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдХреНрдпрд╛ .NET рдорд╛рдирдХ 3.0 (рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рдмрд╛рдж рдХреЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг) рдореЗрдВ System.Text.Json рдкреИрдХреЗрдЬ рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рдпрд╣ .NET Core 3.0 SDK рдкреНрд░реЛрдбрдХреНрд╢рди рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╣реЛрдЧрд╛?

рдХреЛрдИ .NET рдорд╛рдирдХ SDK рдирд╣реАрдВ рд╣реИред .NET рдорд╛рдирдХ рдПрдХ рдПрдкреАрдЖрдИ рд╕рддрд╣ рд╣реИ, рдЬреЛ рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдЖрдк рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ System.Text.Json рд╢рд┐рдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ .NET рдорд╛рдирдХ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, .NET рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рдорд░реНрдерди рджреЗрдЦреЗрдВ ред

@рддреНрд╕реЗрдВрдЧрдПрд╕рдЖрд░

рдХреЛрдИ .NET рдорд╛рдирдХ SDK рдирд╣реАрдВ рд╣реИред .NET рдорд╛рдирдХ рдПрдХ рдПрдкреАрдЖрдИ рд╕рддрд╣ рд╣реИ, рдЬреЛ рд╕рднреА рд╕рдорд░реНрдерд┐рдд рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдЦреИрд░, рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ @mwoo-o рдкреВрдЫ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ System.Text.Json рдХреЛ .NET рдорд╛рдирдХ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред рдЬрд╡рд╛рдм рди рд╣реИред рдареАрдХ рд╣реИ, рдЕрдм рд╣рдо рдЗрд╕реЗ рдПрдХ NuGet рдкреИрдХреЗрдЬ рдХреЗ рд░реВрдк рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВред

рдпрд╣ рднрдпрд╛рдирдХ рд╣реИредрдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рдХрд╛рд░реНрдпред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

v0l picture v0l  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jkotas picture jkotas  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

omajid picture omajid  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yahorsi picture yahorsi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

iCodeWebApps picture iCodeWebApps  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ