클래스 이름을 동적 값으로 사용하여 json을 역 직렬화하는 방법

자 가스 무랄리

다음 json을 어떻게 역 직렬화 할 수 있습니까?

{
    "data": {
        "11396": {
            "description": "Timer project",
            "status": "ACTIVE",
            "customer": {
                "locations": {},
                "id": 96626
            },
            "tasks": [
                {
                    "description": "Timer Task",
                    "unit": "h",
                    "vatPct": 0.2,
                    "unitPrice": 12,
                    "billable": true,
                    "id": 19660
                }
            ],
            "price": 0,
            "pricing": "UNIT",
            "allowProducts": true,
            "hasUninvoicedItems": false,
            "id": 11396
        },
        "11397": {
            "description": "Timer Project 2",
            "status": "ACTIVE",
            "customer": {
                "locations": {},
                "id": 96626
            },
            "tasks": [
                {
                    "description": "Timer Task2",
                    "unit": "h",
                    "vatPct": 0.05,
                    "unitPrice": 20,
                    "billable": true,
                    "id": 19655
                }
            ],
            "price": 0,
            "pricing": "UNIT",
            "allowProducts": true,
            "hasUninvoicedItems": false,
            "id": 11397
        }
    },
    "ok": true
}

문제는 실제로 해당 특정 레코드의 ID 인 클래스 이름 (c #으로 변환하는 경우)으로 값 11396, 11397입니다. 따라서 http://json2csharp.com을 사용하여이 json을 c #으로 변환 할 때 . 그것은 이렇게 보여줍니다

public class Locations
{
}

public class Customer
{
    public Locations locations { get; set; }
    public int id { get; set; }
}

public class Task
{
    public string description { get; set; }
    public string unit { get; set; }
    public double vatPct { get; set; }
    public double unitPrice { get; set; }
    public bool billable { get; set; }
    public int id { get; set; }
}

public class __invalid_type__11397
{
    public string description { get; set; }
    public string status { get; set; }
    public Customer customer { get; set; }
    public List<Task> tasks { get; set; }
    public double price { get; set; }
    public string pricing { get; set; }
    public bool allowProducts { get; set; }
    public bool hasUninvoicedItems { get; set; }
    public int id { get; set; }
}

public class Locations2
{
}

public class Customer2
{
    public Locations2 locations { get; set; }
    public int id { get; set; }
}

public class Task2
{
    public string description { get; set; }
    public string unit { get; set; }
    public double vatPct { get; set; }
    public double unitPrice { get; set; }
    public bool billable { get; set; }
    public int id { get; set; }
}

public class __invalid_type__11396
{
    public string description { get; set; }
    public string status { get; set; }
    public Customer2 customer { get; set; }
    public List<Task2> tasks { get; set; }
    public double price { get; set; }
    public string pricing { get; set; }
    public bool allowProducts { get; set; }
    public bool hasUninvoicedItems { get; set; }
    public int id { get; set; }
}

public class Data
{
    public __invalid_type__11397 __invalid_name__11397 { get; set; }
    public __invalid_type__11396 __invalid_name__11396 { get; set; }
}

public class RootObject
{
    public Data data { get; set; }
    public bool ok { get; set; }
}

어떤 도움이라도 대단히 감사합니다.

자 가스 무랄리

json 문자열을 JTOKEN으로 구문 분석하고 필요한 데이터를 쿼리하여이 문제를 해결했습니다. 이것은 json 내부의 데이터가 정적이기 때문에 가능했습니다.

JToken token = JObject.Parse(response);
        var justDaily = token["data"];
        ProjectList = new List<Project>();
        foreach (JToken child in justDaily.Children())
        {
            foreach (JToken grandChild in child)
            {
                Project temp = JsonConvert.DeserializeObject<Project>(grandChild.ToString().Replace("\r\n", ""));

                    ProjectList.Add(temp);
            }

        }

이것이 다른 사람에게도 도움이되기를 바랍니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

동적 필드 이름을 사용하여 JSON을 C # 클래스로 역 직렬화

분류에서Dev

System.Text.Json을 사용하여 동적 속성을 포함하는 클래스로 JSON 역 직렬화

분류에서Dev

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

분류에서Dev

C #에서 동적 및 정적 키 이름으로 JSON을 역 직렬화하는 방법

분류에서Dev

Web API에서 클래스로 JSON을 역 직렬화하는 방법

분류에서Dev

구성을 사용하는 C # 클래스로 JSON을 역 직렬화하는 방법

분류에서Dev

Jackson을 사용하여 JAVA 클래스를 대상으로하는 JSON 직렬화 및 역 직렬화

분류에서Dev

C #을 사용하여 클래스로 JSON 역 직렬화

분류에서Dev

JSON.net을 사용하여 동적으로 역 직렬화

분류에서Dev

클래스 이름을 루트 요소로 사용하여 C # 클래스를 직렬화하는 방법

분류에서Dev

C #에서 클래스 개체를 JSON 문자열로 직렬화하는 동안 키 이름을 동적으로 설정하는 방법

분류에서Dev

JavaScriptSerializer를 사용하여 JSON을 튜플으로 역 직렬화하는 방법

분류에서Dev

NewtonSoft Json을 사용하여 변수 유형 속성으로 클래스로 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

GSON 또는 Jackson을 사용하여 일반 인수를 사용하여 JSON을 클래스로 역 직렬화

분류에서Dev

스칼라 값을 수동으로 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

Finatra FeatureTests : 반환 된 json을 수동으로 역 직렬화하는 방법

분류에서Dev

System.Text.Json API를 사용하여 스트림을 개체로 역 직렬화하는 방법

분류에서Dev

C #에서 테이블과 값으로 JSON을 역 직렬화하는 방법

분류에서Dev

동적 키를 사용하여 JSON을 사전으로 역 직렬화

분류에서Dev

Spring Boot (Jackson) : 클래스 이름이 JSON으로 직렬화되는 것을 방지하는 방법

분류에서Dev

JSON.NET을 사용하여 파생 클래스로 역 직렬화

분류에서Dev

Newtonsoft.Json을 사용하여 이름을 값으로 역 직렬화

분류에서Dev

문자열 값이 동일한 이름의 개체에 래핑 된 JSON을 명확하게 역 직렬화하는 방법

분류에서Dev

C #으로 JSON 파일을 역 직렬화하는 방법

분류에서Dev

JSON.NET C #을 사용하여 내부 클래스가있는 json 파일로 역 직렬화

분류에서Dev

Jackson : 속기 속성 값으로 json을 역 직렬화하는 방법

분류에서Dev

변수 이름과 배열로 JSON을 역 직렬화하는 방법

분류에서Dev

System.Runtime.Serialization.Json을 사용하여 JSON 배열을 목록으로 역 직렬화하는 방법

분류에서Dev

Json.Net을 사용하여 숫자의 속성 이름으로 시작하는 json을 역 직렬화하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    동적 필드 이름을 사용하여 JSON을 C # 클래스로 역 직렬화

  2. 2

    System.Text.Json을 사용하여 동적 속성을 포함하는 클래스로 JSON 역 직렬화

  3. 3

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

  4. 4

    C #에서 동적 및 정적 키 이름으로 JSON을 역 직렬화하는 방법

  5. 5

    Web API에서 클래스로 JSON을 역 직렬화하는 방법

  6. 6

    구성을 사용하는 C # 클래스로 JSON을 역 직렬화하는 방법

  7. 7

    Jackson을 사용하여 JAVA 클래스를 대상으로하는 JSON 직렬화 및 역 직렬화

  8. 8

    C #을 사용하여 클래스로 JSON 역 직렬화

  9. 9

    JSON.net을 사용하여 동적으로 역 직렬화

  10. 10

    클래스 이름을 루트 요소로 사용하여 C # 클래스를 직렬화하는 방법

  11. 11

    C #에서 클래스 개체를 JSON 문자열로 직렬화하는 동안 키 이름을 동적으로 설정하는 방법

  12. 12

    JavaScriptSerializer를 사용하여 JSON을 튜플으로 역 직렬화하는 방법

  13. 13

    NewtonSoft Json을 사용하여 변수 유형 속성으로 클래스로 역 직렬화하는 방법은 무엇입니까?

  14. 14

    GSON 또는 Jackson을 사용하여 일반 인수를 사용하여 JSON을 클래스로 역 직렬화

  15. 15

    스칼라 값을 수동으로 역 직렬화하는 방법은 무엇입니까?

  16. 16

    Finatra FeatureTests : 반환 된 json을 수동으로 역 직렬화하는 방법

  17. 17

    System.Text.Json API를 사용하여 스트림을 개체로 역 직렬화하는 방법

  18. 18

    C #에서 테이블과 값으로 JSON을 역 직렬화하는 방법

  19. 19

    동적 키를 사용하여 JSON을 사전으로 역 직렬화

  20. 20

    Spring Boot (Jackson) : 클래스 이름이 JSON으로 직렬화되는 것을 방지하는 방법

  21. 21

    JSON.NET을 사용하여 파생 클래스로 역 직렬화

  22. 22

    Newtonsoft.Json을 사용하여 이름을 값으로 역 직렬화

  23. 23

    문자열 값이 동일한 이름의 개체에 래핑 된 JSON을 명확하게 역 직렬화하는 방법

  24. 24

    C #으로 JSON 파일을 역 직렬화하는 방법

  25. 25

    JSON.NET C #을 사용하여 내부 클래스가있는 json 파일로 역 직렬화

  26. 26

    Jackson : 속기 속성 값으로 json을 역 직렬화하는 방법

  27. 27

    변수 이름과 배열로 JSON을 역 직렬화하는 방법

  28. 28

    System.Runtime.Serialization.Json을 사용하여 JSON 배열을 목록으로 역 직렬화하는 방법

  29. 29

    Json.Net을 사용하여 숫자의 속성 이름으로 시작하는 json을 역 직렬화하는 방법은 무엇입니까?

뜨겁다태그

보관