중첩 된 JSON 역 직렬화의 어려움

NZJames

JSON 구조를 되찾기 위해 REST 서비스를 호출하고 있습니다.

내가 얻는 오류는

Test method BarPanda.Web.Services.Test.PosServiceTests.GetMenu threw exception: 
System.MissingMethodException: No parameterless constructor defined for this object.

원본 JSON은 다음과 같습니다 (일부).

{
  "count": 3,
  "limit": 50,
  "_links": {
    "self": {
      "etag": "b49a27c7e7c663af8d6a736e24fac7f5",
      "href": "https://api.omnivore.io/0.1/locations/gcBdM7TL/menu/categories/" ,
      "profile": "https://panel.omnivore.io/docs/api#category_list" 
    }
  },
  "_embedded": {
    "categories": [
      {
        "id": "AdiRjiAp",
        "name": "Drinks",
        "_links": {
          "items": {
            "etag": "05dad4d734401321a4854cf4f0369102",
            "href": "https://api.omnivore.io/0.1/locations/gcBdM7TL/menu/categories/AdiRjiAp/items/" ,
            "profile": "https://panel.omnivore.io/docs/api#menu-item_list" 
          },
          "self": {
            "etag": "05dad4d734401321a4854cf4f0369102",
            "href": "https://api.omnivore.io/0.1/locations/gcBdM7TL/menu/categories/AdiRjiAp/" ,
            "profile": "https://panel.omnivore.io/docs/api#category_retrieve" 
          }
        },
        "_embedded": {
          "items": [
            {
              "id": "gki84ia9",
              "in_stock": true,
              "modifier_groups_count": 0,
              "name": "Soda",
              "open": false,
              "pos_id": "gki84ia9",
              "price": 150,
              "price_levels": [
                {
                  "id": "Byineidy",
                  "price": 150
                },
                {
                  "id": "g4T4dTBj",
                  "price": 200
                },
                {
                  "id": "K6czkc8b",
                  "price": 250
                }
              ],
              "_links": {
                "modifier_groups": {
                  "href": "https://api.omnivore.io/0.1/locations/gcBdM7TL/menu/items/gki84ia9/modifier_groups/" ,
                  "profile": "https://panel.omnivore.io/docs/api#modifier-group_list" 
                },
                "self": {
                  "etag": "c59b380aed5c1f33915b028b739df955",
                  "href": "https://api.omnivore.io/0.1/locations/gcBdM7TL/menu/items/gki84ia9/" ,
                  "profile": "https://panel.omnivore.io/docs/api#menu-item_retrieve" 
                }
              }
            },
            {
              "id": "doTaLTyg",
              "in_stock": true,
              "modifier_groups_count": 0,
              "name": "Orange Juice",
              "open": false,
              "pos_id": "doTaLTyg",
              "price": 175,
              "price_levels": [
                {
                  "id": "L4iqKid8",
                  "price": 175
                },
                {
                  "id": "K6T8MTzb",
                  "price": 300
                }
              ],
              "_links": {
                "modifier_groups": {
                  "href": "https://api.omnivore.io/0.1/locations/gcBdM7TL/menu/items/doTaLTyg/modifier_groups/" ,
                  "profile": "https://panel.omnivore.io/docs/api#modifier-group_list" 
                },
                "self": {
                  "etag": "d3ae9754edb321f18e192ebea446baeb",
                  "href": "https://api.omnivore.io/0.1/locations/gcBdM7TL/menu/items/doTaLTyg/" ,
                  "profile": "https://panel.omnivore.io/docs/api#menu-item_retrieve" 
                }
              }
            }
          ]
        }
      },

다음 코드 및 개체 클래스를 사용하여 역 직렬화하려고합니다.

var response = _client.Execute(request);
var converter = new JsonDeserializer();
            var menu = converter.Deserialize<PosMenu>(response);

PosMenu

[DataContract]
    public class PosMenu 
    {
        [DataMember]
        public int VenueId { get; set; }

        [DataMember]
        public int count { get; set; }

        [DataMember]
        public PosMenuEmbedded _embedded { get; set; }
}

PosMenuEmbedded

[DataContract]
    public class PosMenuEmbedded 
    {
        [DataMember]
        public long UniqueId { get; set; }

        [DataMember]
        public PosMenuCategory[] categories { get; set; }

        [DataMember]
        public int PosMenuId { get; set; }
}

PosMenuCategory

 [DataContract]
    public class PosMenuCategory 
    {
}

참고 : 빈 클래스로 작업 할 수 있는지 확인하기 위해 지금은이 클래스에서 모든 속성을 가져 왔지만 아쉽게도 그렇지 않습니다.

PosMenuEmbedded에서 줄을 주석 처리하면

    public PosMenuCategory[] categories { get; set; }

성공합니다. 다시 넣으면 빈 클래스에서도 실패합니다.

아무도 이것이 왜 그런지 제안 할 수 있습니까?

제임스 데브
    [DataMember]
    public List<PosMenuCategory> categories { get; set; }

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

중첩 된 JSON의 Unity 역 직렬화

분류에서Dev

중첩 된 JSON 역 직렬화

분류에서Dev

중첩 된 JSON을 중첩 된 Dictionary <string, object>로 역 직렬화

분류에서Dev

JSON.NET으로 중첩 된 JSON 응답 역 직렬화

분류에서Dev

C #에서 Newtonsoft를 사용하여 중첩 된 JSON 개체의 역 직렬화

분류에서Dev

AWS Lambda에서 중첩 된 JSON 문자열 역 직렬화 (C #)

분류에서Dev

JSON.NET URL에서 중첩 된 데이터 역 직렬화

분류에서Dev

중첩 된 사전이있는 JSON 파일 역 직렬화

분류에서Dev

C #에서 중첩 된 목록으로 JSON 역 직렬화

분류에서Dev

Json을 중첩 된 pojo로 역 직렬화

분류에서Dev

잘못된 JSON의 역 직렬화 중에 예외를 무시하려면 어떻게합니까?

분류에서Dev

복잡하고 중첩 된 JSON을 어떻게 역 직렬화 할 수 있습니까?

분류에서Dev

잘못된 변수 이름으로 중첩 된 JSON 역 직렬화

분류에서Dev

Json.NET을 사용하여 Json String에서 중첩 된 DataSet 역 직렬화

분류에서Dev

Newtonsoft JSON이 내 json 파일의 중첩 된 개체를 역 직렬화하지 않습니다.

분류에서Dev

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

분류에서Dev

Unity에서 json.net을 역 직렬화하여 다중 / 중첩 된 클래스 반환 값을 얻으려면 어떻게해야합니까?

분류에서Dev

C #에서 Newtonsoft를 사용하여 Json에서 중첩 된 개체의 효율적인 수동 역 직렬화

분류에서Dev

System.Text.Json-중첩 된 개체를 문자열로 역 직렬화

분류에서Dev

중첩 된 JSON API 데이터를 CSV로 역 직렬화 및 내보내기

분류에서Dev

중첩 된 json 문자열을 역 직렬화하면 null 값이됩니다.

분류에서Dev

c # 중첩 된 Json 역 직렬화는 null을 반환합니다.

분류에서Dev

xamarin c # 중첩 된 개체를 포함하는 Json 역 직렬화

분류에서Dev

Retrofit을 사용하여 중첩 된 JSON을 역 직렬화 할 수 없음 (Android)

분류에서Dev

JsonConvert.DeserializeObject를 사용하여 중첩 된 Json 문자열 역 직렬화

분류에서Dev

중첩 된 목록의 XML 역 직렬화 C #

분류에서Dev

중첩 된 객체의 필드 중 하나를 기반으로 중첩 된 JSON 객체를 기본 유형으로 역 직렬화하는 방법

분류에서Dev

중첩 된 json 데이터의 직렬화

분류에서Dev

중첩 된 데이터 클래스의 JSON 직렬화

Related 관련 기사

  1. 1

    중첩 된 JSON의 Unity 역 직렬화

  2. 2

    중첩 된 JSON 역 직렬화

  3. 3

    중첩 된 JSON을 중첩 된 Dictionary <string, object>로 역 직렬화

  4. 4

    JSON.NET으로 중첩 된 JSON 응답 역 직렬화

  5. 5

    C #에서 Newtonsoft를 사용하여 중첩 된 JSON 개체의 역 직렬화

  6. 6

    AWS Lambda에서 중첩 된 JSON 문자열 역 직렬화 (C #)

  7. 7

    JSON.NET URL에서 중첩 된 데이터 역 직렬화

  8. 8

    중첩 된 사전이있는 JSON 파일 역 직렬화

  9. 9

    C #에서 중첩 된 목록으로 JSON 역 직렬화

  10. 10

    Json을 중첩 된 pojo로 역 직렬화

  11. 11

    잘못된 JSON의 역 직렬화 중에 예외를 무시하려면 어떻게합니까?

  12. 12

    복잡하고 중첩 된 JSON을 어떻게 역 직렬화 할 수 있습니까?

  13. 13

    잘못된 변수 이름으로 중첩 된 JSON 역 직렬화

  14. 14

    Json.NET을 사용하여 Json String에서 중첩 된 DataSet 역 직렬화

  15. 15

    Newtonsoft JSON이 내 json 파일의 중첩 된 개체를 역 직렬화하지 않습니다.

  16. 16

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

  17. 17

    Unity에서 json.net을 역 직렬화하여 다중 / 중첩 된 클래스 반환 값을 얻으려면 어떻게해야합니까?

  18. 18

    C #에서 Newtonsoft를 사용하여 Json에서 중첩 된 개체의 효율적인 수동 역 직렬화

  19. 19

    System.Text.Json-중첩 된 개체를 문자열로 역 직렬화

  20. 20

    중첩 된 JSON API 데이터를 CSV로 역 직렬화 및 내보내기

  21. 21

    중첩 된 json 문자열을 역 직렬화하면 null 값이됩니다.

  22. 22

    c # 중첩 된 Json 역 직렬화는 null을 반환합니다.

  23. 23

    xamarin c # 중첩 된 개체를 포함하는 Json 역 직렬화

  24. 24

    Retrofit을 사용하여 중첩 된 JSON을 역 직렬화 할 수 없음 (Android)

  25. 25

    JsonConvert.DeserializeObject를 사용하여 중첩 된 Json 문자열 역 직렬화

  26. 26

    중첩 된 목록의 XML 역 직렬화 C #

  27. 27

    중첩 된 객체의 필드 중 하나를 기반으로 중첩 된 JSON 객체를 기본 유형으로 역 직렬화하는 방법

  28. 28

    중첩 된 json 데이터의 직렬화

  29. 29

    중첩 된 데이터 클래스의 JSON 직렬화

뜨겁다태그

보관