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

JSON.NET을 사용하여 서비스에서받은 JSON 문자열을 비즈니스 개체로 deseralize합니다.

주어진 REST URL의 모든 JSON 문자열을 다음과 같이 객체로 구문 분석하는 멋진 서비스 패턴이 있습니다.

private async Task<T> LoadJSONToObject<T>(string url)
{
    //get data
    var json = await GetResultStringAsync(url);

    //deserialize it
    var results = JsonConvert.DeserializeObject<T>(json);
    return results;
}

내가 가진 도전은 "컨테이너"클래스를 만들지 않고 컬렉션과 함께 위의 패턴을 사용하는 방법입니다.

예를 들어 다음 JSON을 다시 얻는 경우 :

{
    "Properties": [
        {
            "id": 1,
            "name": "Property Name A",
            "address": "Address A, City, Country",
        },
        {
            "id": 2,
            "name": "Property Name B",
            "address": "Address B, City, Country",
        }
    ]
}

내 사업체는 다음과 같습니다.

public class Property
{
    [JsonProperty("id")]
    public string ID { get; set; }

    [JsonProperty("name")]
    public string Name { get; set; }

    [JsonProperty("address")]
    public string Address{ get; set; }

}

다음을 호출하여 위의 메서드를 간단히 호출하고 싶습니다.

LoadJSONToObject<List<Property>>("http://www.myapi.com/properties");

JSON.NET이 대신 컨테이너 객체를 기대하기 때문에 위의 내용은 실패합니다. 다음과 같은 것 :

public class PropertyList 
{
    [JsonProperty("Properties")]
    public List<Property> Properties { get; set; }
}

그런 컨테이너를 만드는 것은 과잉이라고 생각하고 위의 작업을 수행하는 우아한 솔루션이 있는지 확인하고 싶습니다.

일리야 디 모프

다음 LoadJSONToObject과 같이 다시 작성하면이를 수행 할 수 있습니다 .

private async Task<T> LoadJSONToObject<T>(string url, string rootProperty)
{
    //get data
    var json = await GetResultStringAsync(url);

    if (string.IsNullOrWhiteSpace(rootProperty))
        return JsonConvert.DeserializeObject<T>(json);

    var jObject = JObject.Parse(json);

    var parsedJson = jObject[rootProperty].ToString();

    //deserialize it
    return JsonConvert.DeserializeObject<T>(parsedJson);
}

메서드 호출은

LoadJSONToObject<List<Property>>("http://www.myapi.com/properties", "Properties");

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

현재 JSON 개체를 역 직렬화 할 수 없습니다. 그룹 열을 사용하여 현재 JSON 개체를 역 직렬화 할 수 없습니다.

분류에서Dev

변수 이름을 사용하여 개체로 역 직렬화

분류에서Dev

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

분류에서Dev

자바 객체에 datetime을 사용하여 JSON 역 직렬화

분류에서Dev

GSON을 사용하여 객체의 JSON 배열 역 직렬화

분류에서Dev

COM을 사용하여 PHP에서 .Net 개체 역 직렬화

분류에서Dev

JSON.NET을 사용하여 개체의 동적 속성 이름 직렬화

분류에서Dev

Newtonsoft.Json 라이브러리를 사용하여 문자열을 C #을 사용하여 사용자 지정 개체로 역 직렬화하는 방법

분류에서Dev

JSON.net을 사용하여 대량의 json 데이터 역 직렬화

분류에서Dev

JSON.net을 사용하여 대량의 json 데이터 역 직렬화

분류에서Dev

NSJSONSerialization을 사용하여 json에서 이미지 역 직렬화

분류에서Dev

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

분류에서Dev

JSON을 C # 개체로 역 직렬화

분류에서Dev

JSON에서 /에서 중첩 된 파생 개체를 사용하여 C # 데이터 개체 역 직렬화

분류에서Dev

JSON을 C # 개체로 역 직렬화-역 직렬화되는 데이터 없음

분류에서Dev

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

분류에서Dev

JSON 직렬 변환기를 사용하여 Mongo DB 개체 ID 역 직렬화

분류에서Dev

jackson을 사용하여 동일한 ID를 가진 2 개의 개체를 포함하는 Json을 역 직렬화 할 수 없습니다.

분류에서Dev

Objective-C를 사용하여 JSON을 사용자 지정 개체로 역 직렬화

분류에서Dev

JSON.NET을 사용하여 dictionary <string, object> 역 직렬화 및 직렬화

분류에서Dev

JSON을 개체로 역 직렬화 할 때 발생하는 .NET Web API 문제

분류에서Dev

GSON을 사용하여 평면화 된 JSON 키를 적절한 개체로 역 직렬화

분류에서Dev

JSON을 .net 객체로 역 직렬화

분류에서Dev

System.Text.Json을 사용하여 배열 json 개체의 중첩 된 배열을 역 직렬화

분류에서Dev

spray-json을 사용한 Scala 케이스 객체의 JSON 역 직렬화

분류에서Dev

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

분류에서Dev

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

분류에서Dev

Json.net을 사용하여 Vb.net에서 JSON 객체를 어떻게 역 직렬화합니까?

분류에서Dev

Play의 json을 사용하여 동적 필드 이름을 직렬화 / 역 직렬화하는 방법

Related 관련 기사

  1. 1

    현재 JSON 개체를 역 직렬화 할 수 없습니다. 그룹 열을 사용하여 현재 JSON 개체를 역 직렬화 할 수 없습니다.

  2. 2

    변수 이름을 사용하여 개체로 역 직렬화

  3. 3

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

  4. 4

    자바 객체에 datetime을 사용하여 JSON 역 직렬화

  5. 5

    GSON을 사용하여 객체의 JSON 배열 역 직렬화

  6. 6

    COM을 사용하여 PHP에서 .Net 개체 역 직렬화

  7. 7

    JSON.NET을 사용하여 개체의 동적 속성 이름 직렬화

  8. 8

    Newtonsoft.Json 라이브러리를 사용하여 문자열을 C #을 사용하여 사용자 지정 개체로 역 직렬화하는 방법

  9. 9

    JSON.net을 사용하여 대량의 json 데이터 역 직렬화

  10. 10

    JSON.net을 사용하여 대량의 json 데이터 역 직렬화

  11. 11

    NSJSONSerialization을 사용하여 json에서 이미지 역 직렬화

  12. 12

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

  13. 13

    JSON을 C # 개체로 역 직렬화

  14. 14

    JSON에서 /에서 중첩 된 파생 개체를 사용하여 C # 데이터 개체 역 직렬화

  15. 15

    JSON을 C # 개체로 역 직렬화-역 직렬화되는 데이터 없음

  16. 16

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

  17. 17

    JSON 직렬 변환기를 사용하여 Mongo DB 개체 ID 역 직렬화

  18. 18

    jackson을 사용하여 동일한 ID를 가진 2 개의 개체를 포함하는 Json을 역 직렬화 할 수 없습니다.

  19. 19

    Objective-C를 사용하여 JSON을 사용자 지정 개체로 역 직렬화

  20. 20

    JSON.NET을 사용하여 dictionary <string, object> 역 직렬화 및 직렬화

  21. 21

    JSON을 개체로 역 직렬화 할 때 발생하는 .NET Web API 문제

  22. 22

    GSON을 사용하여 평면화 된 JSON 키를 적절한 개체로 역 직렬화

  23. 23

    JSON을 .net 객체로 역 직렬화

  24. 24

    System.Text.Json을 사용하여 배열 json 개체의 중첩 된 배열을 역 직렬화

  25. 25

    spray-json을 사용한 Scala 케이스 객체의 JSON 역 직렬화

  26. 26

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

  27. 27

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

  28. 28

    Json.net을 사용하여 Vb.net에서 JSON 객체를 어떻게 역 직렬화합니까?

  29. 29

    Play의 json을 사용하여 동적 필드 이름을 직렬화 / 역 직렬화하는 방법

뜨겁다태그

보관