루트 개체 및 1 배열 ASP.NET MVC없이 json 역 직렬화

마샬 프리먼

타사 API를 사용하는 웹 애플리케이션을 구축 중이며 아래 json을받습니다.

 {
"CompanyID": 14585,
"CompanyName": "The Morgan Group Daytona, LLC",
"BillingAddressLine": "100 S Beach St #200",
"BillingAddressCity": "Daytona Beach",
"BillingAddressState": "Fl",
"BillingAddressPostCode": "32114",
"BillingCountryCode": "US",
"BillingAddress": "100 S Beach St #200\r\nDaytona Beach Fl 32114\r\nUNITED STATES",
"Phone": null,
"Fax": null,
"website": null,
"TaxNumber": null,
"Comments": null,
"CurrencyCode": "USD",
"DefaultTradingTermIDFK": 15,
"DateCreated": "2020-09-04T18:25:02",
"DateUpdated": "2020-09-04T18:25:02",
"Contacts": [
    {
        "ContactID": 13781,
        "CompanyIDFK": 14585,
        "CompanyName": null,
        "Firstname": "Test",
        "Lastname": "User",
        "Email": "[email protected]",
        "Phone": null,
        "Mobile": "4075551234",
        "PositionTitle": "Test Title",
        "TimeZone": "Eastern Standard Time",
        "DateCreated": "2020-09-07T02:21:10",
        "DateUpdated": "2020-09-07T02:21:10"
    }
]
}

다른 API 호출에 대한 다른 모든 json 응답에도 루트 객체가 없습니다. 목표는 면도기를 사용하여이 정보를 뷰에 표시하는 것입니다. 그렇게하는 가장 효율적인 방법은 무엇입니까?

지금까지이 클래스 파일을 만들었습니다.

public class Contact    {
    public int ContactID { get; set; } 
    public int CompanyIDFK { get; set; } 
    public object CompanyName { get; set; } 
    public string Firstname { get; set; } 
    public string Lastname { get; set; } 
    public string Email { get; set; } 
    public object Phone { get; set; } 
    public string Mobile { get; set; } 
    public string PositionTitle { get; set; } 
    public string TimeZone { get; set; } 
    public DateTime DateCreated { get; set; } 
    public DateTime DateUpdated { get; set; } 
}

public class Root    {
    public int CompanyID { get; set; } 
    public string CompanyName { get; set; } 
    public string BillingAddressLine { get; set; } 
    public string BillingAddressCity { get; set; } 
    public string BillingAddressState { get; set; } 
    public string BillingAddressPostCode { get; set; } 
    public string BillingCountryCode { get; set; } 
    public string BillingAddress { get; set; } 
    public object Phone { get; set; } 
    public object Fax { get; set; } 
    public object website { get; set; } 
    public object TaxNumber { get; set; } 
    public object Comments { get; set; } 
    public string CurrencyCode { get; set; } 
    public int DefaultTradingTermIDFK { get; set; } 
    public DateTime DateCreated { get; set; } 
    public DateTime DateUpdated { get; set; } 
    public List<Contact> Contacts { get; set; } 
}

하지만 이제 나는 이와 같은 것을 deserialize하는 방법을 알아 내려고 노력하고 있습니까? 이 작업을 수행하는 가장 쉬운 방법은 무엇입니까? 동일한 상황과 일치하는 다른 게시물을 찾을 수없는 것 같습니다.

앤디

JSON blob을 받으면 https://json2csharp.com/ 으로 이동하여 작업 속도를 높이고 클래스로 변환하도록 할 수 있습니다. 예를 들어 해당 blob은 다음을 반환합니다.

public class Contact    {
    public int ContactID { get; set; } 
    public int CompanyIDFK { get; set; } 
    public object CompanyName { get; set; } 
    public string Firstname { get; set; } 
    public string Lastname { get; set; } 
    public string Email { get; set; } 
    public string Phone { get; set; } 
    public string Mobile { get; set; } 
    public string PositionTitle { get; set; } 
    public string TimeZone { get; set; } 
    public DateTime DateCreated { get; set; } 
    public DateTime DateUpdated { get; set; } 
}

public class Root    {
    public int CompanyID { get; set; } 
    public string CompanyName { get; set; } 
    public string BillingAddressLine { get; set; } 
    public string BillingAddressCity { get; set; } 
    public string BillingAddressState { get; set; } 
    public string BillingAddressPostCode { get; set; } 
    public string BillingCountryCode { get; set; } 
    public string BillingAddress { get; set; } 
    public string Phone { get; set; } 
    public string Fax { get; set; } 
    public string website { get; set; } 
    public string TaxNumber { get; set; } 
    public string Comments { get; set; } 
    public string CurrencyCode { get; set; } 
    public int DefaultTradingTermIDFK { get; set; } 
    public DateTime DateCreated { get; set; } 
    public DateTime DateUpdated { get; set; } 
    public List<Contact> Contacts { get; set; } 
}

반환하는 클래스에는 때때로 작은 문제가 있습니다. 예를 들어 Blob에 많은 null속성 이 있었기 때문에 object. 나는 그들을 string.

그런 다음 간단히 사용 Newtonsoft.Json하여 변환합니다.

using(var s = File.OpenRead(@"c:\users\andy\desktop\test.json"))
using(var sr = new StreamReader(s))
using(var jtr = new JsonTextReader(sr))
{
    var obj = new JsonSerializer().Deserialize<Root>(jtr);
}

그리고 완료되었습니다. json

이 데이터 가져 오기에 대한 코드를 게시했으며 WebRequest. 그냥 그 최대 헤드는 WebRequest기존이며, 당신이 사용되어야한다 HttpClient. 다음을 사용하여 다운로드 / 비 직렬화하는 방법입니다 HttpClient.

private static readonly HttpClient _httpClient = new HttpClient();

private static async Task<Root> GetStuffFromThereAsync(string token)
{
    using(var req = new HttpRequestMessage(HttpMethod.Get,
        new Uri("https://www.example.com")))
    {
        req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
        using (var resp = await _httpClient.SendAsync(req))
        {
            resp.EnsureSuccessStatusCode();
            using (var s = await resp.Content.ReadAsStreamAsync())
            using (var sr = new StreamReader(s))
            using (var jtr = new JsonTextReader(sr))
            {
                return new JsonSerializer().Deserialize<Root>(jtr);
            }
        }
    }
}

그래도 반환되는 경우 null모델이 일치하지 않을 가능성이 있습니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C # 및 ASP.NET MVC 및 JSON.NET을 사용하여 JSON 역 직렬화 및 비 기본 개체 인쇄

분류에서Dev

Json.NET 루트 및 하위 스키마 데이터 역 직렬화

분류에서Dev

C # JSON.net-비상 수 이름 개체의 유사 배열 개체 역 직렬화

분류에서Dev

C # ASP.NET에서 RestSharp 및 JSON.Net을 사용하여 json 배열 역 직렬화

분류에서Dev

C # / JSON 개체 직렬화, 역 직렬화 및 대 / 소문자 문제 없음

분류에서Dev

JSON 구조를 개체 배열 및 사전으로 역 직렬화

분류에서Dev

JSON 문자열을 C # 및 Unity의 개체로 역 직렬화

분류에서Dev

JSON 개체 역 직렬화 및 작업

분류에서Dev

json 문자열을 .NET 개체 목록으로 역 직렬화

분류에서Dev

json 문자열을 개체 C # .net으로 역 직렬화

분류에서Dev

json.net 객체 배열로 역 직렬화 C #

분류에서Dev

JSON.NET에서 인터페이스 개체 역 직렬화

분류에서Dev

JSON 개체 이름-값 쌍을 배열의 요소로 역 직렬화

분류에서Dev

자식 개체 ASP.NET Core를 JSON 역 직렬화하는 방법

분류에서Dev

ASP.NET MVC 및 Json.Net을 사용하여보기에서 Json 역 직렬화 출력 표시

분류에서Dev

컨테이너없이 JSON.NET을 사용하여 개체 역 직렬화

분류에서Dev

ASP.NET Core보기 페이지에서 JSON 배열 역 직렬화 구문 분석

분류에서Dev

파일에서 개체를 역 직렬화 및 재 직렬화하는 데 문제가있는 C # JSON.net

분류에서Dev

json.net이 개체 목록으로 역 직렬화 할 수 없음

분류에서Dev

루트없이 JSON 배열을 역 직렬화합니다. 배열 값을 어떻게 읽습니까?

분류에서Dev

의미없는 동적 키 이름으로 루트 개체를 역 직렬화하는 방법은 무엇입니까? Json.NET

분류에서Dev

JSON 배열을 C # 개체로 역 직렬화 (TFL API)

분류에서Dev

System.Text.Json 개체 배열 역 직렬화

분류에서Dev

JSON 개체를 배열로 역 직렬화

분류에서Dev

C #에서 JSON 역 직렬화 : 개체 대 배열

분류에서Dev

JSON 개체를 배열로 역 직렬화

분류에서Dev

현재 JSON 개체 (예 : { "name": "value"})를 형식으로 역 직렬화 할 수 없습니다. 올바르게 역 직렬화하려면 JSON 배열 (예 : [1,2,3])이 필요합니다.

분류에서Dev

Json 개체를 .NET 개체로 역 직렬화

분류에서Dev

JSON 개체 역 직렬화

Related 관련 기사

  1. 1

    C # 및 ASP.NET MVC 및 JSON.NET을 사용하여 JSON 역 직렬화 및 비 기본 개체 인쇄

  2. 2

    Json.NET 루트 및 하위 스키마 데이터 역 직렬화

  3. 3

    C # JSON.net-비상 수 이름 개체의 유사 배열 개체 역 직렬화

  4. 4

    C # ASP.NET에서 RestSharp 및 JSON.Net을 사용하여 json 배열 역 직렬화

  5. 5

    C # / JSON 개체 직렬화, 역 직렬화 및 대 / 소문자 문제 없음

  6. 6

    JSON 구조를 개체 배열 및 사전으로 역 직렬화

  7. 7

    JSON 문자열을 C # 및 Unity의 개체로 역 직렬화

  8. 8

    JSON 개체 역 직렬화 및 작업

  9. 9

    json 문자열을 .NET 개체 목록으로 역 직렬화

  10. 10

    json 문자열을 개체 C # .net으로 역 직렬화

  11. 11

    json.net 객체 배열로 역 직렬화 C #

  12. 12

    JSON.NET에서 인터페이스 개체 역 직렬화

  13. 13

    JSON 개체 이름-값 쌍을 배열의 요소로 역 직렬화

  14. 14

    자식 개체 ASP.NET Core를 JSON 역 직렬화하는 방법

  15. 15

    ASP.NET MVC 및 Json.Net을 사용하여보기에서 Json 역 직렬화 출력 표시

  16. 16

    컨테이너없이 JSON.NET을 사용하여 개체 역 직렬화

  17. 17

    ASP.NET Core보기 페이지에서 JSON 배열 역 직렬화 구문 분석

  18. 18

    파일에서 개체를 역 직렬화 및 재 직렬화하는 데 문제가있는 C # JSON.net

  19. 19

    json.net이 개체 목록으로 역 직렬화 할 수 없음

  20. 20

    루트없이 JSON 배열을 역 직렬화합니다. 배열 값을 어떻게 읽습니까?

  21. 21

    의미없는 동적 키 이름으로 루트 개체를 역 직렬화하는 방법은 무엇입니까? Json.NET

  22. 22

    JSON 배열을 C # 개체로 역 직렬화 (TFL API)

  23. 23

    System.Text.Json 개체 배열 역 직렬화

  24. 24

    JSON 개체를 배열로 역 직렬화

  25. 25

    C #에서 JSON 역 직렬화 : 개체 대 배열

  26. 26

    JSON 개체를 배열로 역 직렬화

  27. 27

    현재 JSON 개체 (예 : { "name": "value"})를 형식으로 역 직렬화 할 수 없습니다. 올바르게 역 직렬화하려면 JSON 배열 (예 : [1,2,3])이 필요합니다.

  28. 28

    Json 개체를 .NET 개체로 역 직렬화

  29. 29

    JSON 개체 역 직렬화

뜨겁다태그

보관