ASP.NET Core 3.1에서 HttpContext.Response와 함께 새 Json serializer 사용

SpiritBob

개체를 ASP.NET Core의 파이프 라인에서 JSON 문자열로 직렬화하려면 개체 를 할당하는 데 쉽게 사용할 수있는 속성이 HttpContext.Response.Body.WriteAsync없기 때문에 누락 된 항목이없는 Result한을 사용해야 JsonResult합니다.

더 나은 대안이 없다면 위의 방법을 사용하여 직렬화가 정확히 어떻게 이루어 집니까?

참고 : JSON serializer의 옵션은 ASP.NET Core 3.1에서 사용되는 (기본값) 옵션과 동일해야합니다.

원한다면 (우리의 경우는 아님) IServiceCollection.AddJsonOptions미들웨어 를 통해 수정할 수 있습니다 .

예:

app.Use( next =>
{
    return async context =>
    {
        if (<someFunkyConditionalExample>)
        {
            // serialize a JSON object as the response's content, returned to the end-user.
            // this should use ASP.NET Core 3.1's defaults for JSON Serialization.
        }
        else
        {
            await next(context);
        }
    };
});
DavidG

우선 다음과 같은 확장 메서드사용 하여 응답에 직접 문자열을 쓸 수 있습니다 .

await context.Response.WriteAsync("some text");

다음 확장에 대한 액세스 권한을 부여하려면 올바른 네임 스페이스를 가져 왔는지 확인하십시오.

using Microsoft.AspNetCore.Http;

둘째, 프레임 워크에서 사용중인 JSON 시리얼 라이저 설정을 얻으려면 DI 컨테이너에서 추출 할 수 있습니다.

var jsonOptions = context.RequestServices.GetService<IOptions<JsonOptions>>();

따라서 전체 파이프 라인 코드가 다음과 같이 보일 것입니다.

app.Use(next =>
{
    return async context =>
    {
        if (<someFunkyConditionalExample>)
        {
            // Get the options
            var jsonOptions = context.RequestServices.GetService<IOptions<JsonOptions>>();

            // Serialise using the settings provided
            var json = JsonSerializer.Serialize(
                new {Foo = "bar"}, // Switch this with your object
                jsonOptions?.Value.JsonSerializerOptions);

            // Write to the response
            await context.Response.WriteAsync(json);
        }
        else
        {
            await next(context);
        }
    };
});

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

ASP.NET Core 3.x MVC에서 Url.Action () 및 비동기 메서드와 함께 nameof () 사용

분류에서Dev

ASP.NET Core와 함께 Azure Service Fabric에서 Windows 인증 사용

분류에서Dev

ASP.NET Core 3.1에서 Newtonsoft.JSON을 사용하여 Json.Serialize ()와 함께 작동하지 않는 사용자 지정 JsonConverter 특성

분류에서Dev

Asp Net core 2.2에 대한 구성이 Asp Net core 3과 함께 사용 되었습니까?

분류에서Dev

ASP.NET Core3.1에서 'System.Web.HttpContext'가 포함 된 레거시 프로젝트 사용

분류에서Dev

Polymer와 함께 Visual Studio ASP.NET Core 앱에서 lit 요소를 사용하는 방법

분류에서Dev

.NET Core 3에서 RestSharp와 함께 프록시를 사용하지 않는 방법

분류에서Dev

API와 함께 .NET Core ID 사용

분류에서Dev

Node.js와 함께 ASP.NET Core 3.1을 사용하십니까?

분류에서Dev

ASP.NET Core에서 Unobtrusive Ajax 플러그인과 함께 ValidateAntiForgeryToken 특성 사용

분류에서Dev

ASP.NET Core 1.0에서 RedirectToAction과 함께 ModelState를 사용하는 비동기

분류에서Dev

.NET Core 콘솔 앱에서 NUnit3과 함께 app.config 파일 사용

분류에서Dev

MVC에서 내 고유 엔터티와 함께 ASP.NET ID 사용

분류에서Dev

gRPC 및 ASP Net Core : Null이 아닌 인수와 함께 SslCredentials를 사용하는 것은 GrpcChannel에서 지원되지 않습니다.

분류에서Dev

ASP.NET Core 프로젝트에서 web.config와 함께 URL 다시 쓰기를 사용할 수 있나요?

분류에서Dev

ASP.NET Core에서 ActionExecutionContext의 HttpContext에서 RawBody 가져 오기

분류에서Dev

Dynamic Data ASP.net MVC-Core와 함께 Chart.js를 사용하여 그래프로드

분류에서Dev

Asp.Net Core Spa 템플릿에서 웹팩과 함께 의미 체계 UI 사용

분류에서Dev

Abp 프레임 워크 .NET Core 3에서 영어가 아닌 문화와 함께 그레고리 안 날짜 사용

분류에서Dev

ASP.Net 프로젝트에서 ReportViewer와 함께 사용자 지정 개체 사용

분류에서Dev

Asp.net Core 5.0은 httpContext.Session.GetString을 메서드로 사용하지 않는 것으로 보입니다.

분류에서Dev

ASP.NET Core 3에서 id_token 사용

분류에서Dev

Razor 페이지와 함께 .Net Core v3를 사용하여 로그인 한 후 Google 사진 표시

분류에서Dev

Windows.Storage와 함께 UWP에서 System.IO Serializer를 사용하는 방법

분류에서Dev

TFS를 사용하는 MSBuild가 여러 프로젝트와 함께 ASP.NET 배포에서 실패 함

분류에서Dev

Azure Application Insights 및 .Net Core와 함께 serilog 사용

분류에서Dev

.Net Core 3.1 Microsoft.Extensions.Logger와 함께 Serilog 사용

분류에서Dev

FileResult, ASP.NET MVC와 함께 ImageResizer를 사용하십니까?

분류에서Dev

ASP.NET ID와 함께 SQL Server Compact 사용

Related 관련 기사

  1. 1

    ASP.NET Core 3.x MVC에서 Url.Action () 및 비동기 메서드와 함께 nameof () 사용

  2. 2

    ASP.NET Core와 함께 Azure Service Fabric에서 Windows 인증 사용

  3. 3

    ASP.NET Core 3.1에서 Newtonsoft.JSON을 사용하여 Json.Serialize ()와 함께 작동하지 않는 사용자 지정 JsonConverter 특성

  4. 4

    Asp Net core 2.2에 대한 구성이 Asp Net core 3과 함께 사용 되었습니까?

  5. 5

    ASP.NET Core3.1에서 'System.Web.HttpContext'가 포함 된 레거시 프로젝트 사용

  6. 6

    Polymer와 함께 Visual Studio ASP.NET Core 앱에서 lit 요소를 사용하는 방법

  7. 7

    .NET Core 3에서 RestSharp와 함께 프록시를 사용하지 않는 방법

  8. 8

    API와 함께 .NET Core ID 사용

  9. 9

    Node.js와 함께 ASP.NET Core 3.1을 사용하십니까?

  10. 10

    ASP.NET Core에서 Unobtrusive Ajax 플러그인과 함께 ValidateAntiForgeryToken 특성 사용

  11. 11

    ASP.NET Core 1.0에서 RedirectToAction과 함께 ModelState를 사용하는 비동기

  12. 12

    .NET Core 콘솔 앱에서 NUnit3과 함께 app.config 파일 사용

  13. 13

    MVC에서 내 고유 엔터티와 함께 ASP.NET ID 사용

  14. 14

    gRPC 및 ASP Net Core : Null이 아닌 인수와 함께 SslCredentials를 사용하는 것은 GrpcChannel에서 지원되지 않습니다.

  15. 15

    ASP.NET Core 프로젝트에서 web.config와 함께 URL 다시 쓰기를 사용할 수 있나요?

  16. 16

    ASP.NET Core에서 ActionExecutionContext의 HttpContext에서 RawBody 가져 오기

  17. 17

    Dynamic Data ASP.net MVC-Core와 함께 Chart.js를 사용하여 그래프로드

  18. 18

    Asp.Net Core Spa 템플릿에서 웹팩과 함께 의미 체계 UI 사용

  19. 19

    Abp 프레임 워크 .NET Core 3에서 영어가 아닌 문화와 함께 그레고리 안 날짜 사용

  20. 20

    ASP.Net 프로젝트에서 ReportViewer와 함께 사용자 지정 개체 사용

  21. 21

    Asp.net Core 5.0은 httpContext.Session.GetString을 메서드로 사용하지 않는 것으로 보입니다.

  22. 22

    ASP.NET Core 3에서 id_token 사용

  23. 23

    Razor 페이지와 함께 .Net Core v3를 사용하여 로그인 한 후 Google 사진 표시

  24. 24

    Windows.Storage와 함께 UWP에서 System.IO Serializer를 사용하는 방법

  25. 25

    TFS를 사용하는 MSBuild가 여러 프로젝트와 함께 ASP.NET 배포에서 실패 함

  26. 26

    Azure Application Insights 및 .Net Core와 함께 serilog 사용

  27. 27

    .Net Core 3.1 Microsoft.Extensions.Logger와 함께 Serilog 사용

  28. 28

    FileResult, ASP.NET MVC와 함께 ImageResizer를 사용하십니까?

  29. 29

    ASP.NET ID와 함께 SQL Server Compact 사용

뜨겁다태그

보관