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

Arioamir

C #의 중첩 목록으로 JSON을 역 직렬화하는 방법, 내 활동은 항상 null입니다. 제발 도와주세요. 내가 잘못 가고있는 곳을 찾을 수 없습니다. 어떤 도움이라도 정말 감사하겠습니다.

코드를 역 직렬화하려고하는데 Activities를 얻지 못했습니다. 내 프로젝트는 다음과 같습니다.

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using System.ComponentModel.DataAnnotations;

public class Program
{
    public static void Main()
    {
        string json = @"
            {
  ""Title"": ""test"",
  ""Id"": ""SR21576"",
  ""CreatedDate"": ""2016-12-10T09:21:06+03:30"",
  ""DisplayName"": ""SR21576 : test"",
  ""Description"": ""10"",
  ""AlternateContactMethod"": null,
  ""AffectedUser"": null,
  ""AssignedToUser"": ""XXX\\BB Team"",
  ""CustomerCode"": ""00000000-0000-0000-0000-000000000000"",
  ""CustomerName"": null,
  ""ContractId"": ""00000000-0000-0000-0000-000000000000"",
  ""ContractTitle"": null,
  ""ContractDetailsId"": ""00000000-0000-0000-0000-000000000000"",
  ""ContractDetailsTitle"": null,
  ""CRMLink"": null,
  ""LeadId"": ""00000000-0000-0000-0000-000000000000"",
  ""LeadTitle"": null,
  ""Urgency"": ""b02d9277-a9fe-86f1-e95e-0ba8cd4fd075"",
  ""Priority"": ""1e070214-693f-4a19-82bb-b88ee6362d98"",
  ""Source"": ""57e11419-ac27-a6fa-97f1-0ec2a9722807"",
  ""Area"": ""3c5e6037-b057-5745-4d89-e95f67d3236b"",
  ""SupportGroup"": ""ae536997-8124-85e7-496e-225b7991a450"",
  ""Attachments"": [ ],
  ""Activities"": [
    {
      ""<Id>k__BackingField"": ""ffe60a69-f3c8-adbe-9bbd-4050d766cc81"",
      ""<ActivityID>k__BackingField"": ""MA21578"",
      ""<Title>k__BackingField"": ""a"",
      ""<Status>k__BackingField"": ""Ready"",
      ""<TypeOfActivity>k__BackingField"": 1
    },
    {
      ""<Id>k__BackingField"": ""91286e74-6a39-964f-040f-5daf99e84792"",
      ""<ActivityID>k__BackingField"": ""RA21579"",
      ""<Title>k__BackingField"": ""b"",
      ""<Status>k__BackingField"": ""Ready"",
      ""<TypeOfActivity>k__BackingField"": 0
    },
    {
      ""<Id>k__BackingField"": ""9754f1a1-d37b-265a-087a-f6688808dbeb"",
      ""<ActivityID>k__BackingField"": ""MA21577"",
      ""<Title>k__BackingField"": ""c"",
      ""<Status>k__BackingField"": ""Active"",
      ""<TypeOfActivity>k__BackingField"": 1
    },
    {
      ""<Id>k__BackingField"": ""d959cac5-cb78-a3fb-09e2-76da1b5381b2"",
      ""<ActivityID>k__BackingField"": ""MA21580"",
      ""<Title>k__BackingField"": ""d"",
      ""<Status>k__BackingField"": ""Ready"",
      ""<TypeOfActivity>k__BackingField"": 1
    }
  ],
  ""Status"": ""InProgress""
}";


        ServiceRequest items = JsonConvert.DeserializeObject<ServiceRequest>(json);

        Console.WriteLine("Area: " + items.Area);
        Console.WriteLine("CRMLink: " + items.CRMLink);

        Console.WriteLine("Number of Activities: " + items.Activities.Count);

        int i = 0;
        //Activities are null why???????
        foreach (var type in items.Activities)
        {
            i++;
            Console.WriteLine("Activities item number " + i);
            Console.WriteLine("ActivityID: " + type.ActivityID);
            Console.WriteLine("Id: " + type.Id);
            Console.WriteLine("Status: " + type.Status);
            Console.WriteLine("Title: " + type.Title);
            Console.WriteLine("TypeOfActivity: " + type.TypeOfActivity);
            Console.WriteLine();
        }
    }
}

[Serializable]
public class Activity
{
    public Guid Id { get; set; }
    public String ActivityID { get; set; }
    public String Title { get; set; }
    public String Status { get; set; }

    public ActivityType TypeOfActivity { get; set; }
}

[Serializable]
public enum ActivityType
{
    ReviewActvity,
    ManualActivity
}

[Serializable]
public class Attachment
{
    [Required]
    public string FileName { get; set; }
    [Required]
    public string ServerFileName { get; set; }
    public bool ToRemove { get; set; }
    [Required]
    public string AttachedByUser { get; set; }

}

[Serializable]
public class ServiceRequest
{
    [Required]
    public string Title { get; set; }
    public String Id { get; set; }
    public DateTime CreatedDate { get; set; }
    public string DisplayName { get; set; }
    [Required]
    public string Description { get; set; }
    public string AlternateContactMethod { get; set; }
    public string AffectedUser { get; set; }
    public string AssignedToUser { get; set; }
    public Guid CustomerCode { get; set; }
    public string CustomerName { get; set; }
    public Guid ContractId { get; set; }
    public string ContractTitle { get; set; }
    public Guid ContractDetailsId { get; set; }
    public string ContractDetailsTitle { get; set; }
    public string CRMLink { get; set; }
    public Guid LeadId { get; set; }
    public string LeadTitle { get; set; }
    public Guid Urgency { get; set; }
    public Guid Priority { get; set; }
    public Guid Source { get; set; }
    public Guid Area { get; set; }
    public Guid SupportGroup { get; set; }
    public List<Attachment> Attachments { get; set; }
    public List<Activity> Activities { get; set; }
    public string Status { get; set; }
}
dbc

원래 Activities컬렉션에 대한 JSON을 생성 한 사람 은 객체 필드 를 직렬화하기로 선택했습니다 . 그리고 클래스는 전적으로 자동 구현 속성으로 구성되기 때문에 비밀 지원 필드를 얻게 됩니다 .

Json.NET Activity이 속성 아닌 의 공용 및 개인 필드를 역 직렬화하도록 하려면 형식을 [JsonObject(MemberSerialization.Fields)]다음 같이 표시하십시오 .

[Serializable]
[JsonObject(MemberSerialization.Fields)]
public class Activity
{
    public Guid Id { get; set; }
    public String ActivityID { get; set; }
    public String Title { get; set; }
    public String Status { get; set; }

    public ActivityType TypeOfActivity { get; set; }
}

또는 원래 JSON을 생성 한 코드를 수정하여 필드에 우선하여 속성을 직렬화합니다. 이것은 루트 유형 ServiceRequest이 필드가 아니라 속성을 직렬화 했기 때문에 의식적인 선택 인 것 같습니다 .

샘플 바이올린 .

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

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

분류에서Dev

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

분류에서Dev

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

분류에서Dev

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

분류에서Dev

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

분류에서Dev

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

분류에서Dev

C #에서 중첩 된 XML 역 직렬화 (Unity-Script)

분류에서Dev

중첩 된 JSON의 Unity 역 직렬화

분류에서Dev

중첩 된 JSON 역 직렬화

분류에서Dev

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

분류에서Dev

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

분류에서Dev

Json을 중첩 된 pojo로 역 직렬화

분류에서Dev

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

분류에서Dev

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

분류에서Dev

동적 개체에 중첩 된 C # 목록의 첫 번째 항목과 마지막 항목을 JSON으로 직렬화

분류에서Dev

Symfony 4에서 중첩 된 DateTime 객체를 사용하여 json을 엔티티로 역 직렬화

분류에서Dev

Newtonsoft.Json을 사용하여 C #에서 중첩 배열로 json을 역 직렬화하는 방법

분류에서Dev

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

분류에서Dev

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

분류에서Dev

JSON에서 VB.NET으로 목록에서 역 직렬화

분류에서Dev

JSON 역 직렬화-값으로 필요한 중첩 목록 및 키

분류에서Dev

C #에서 JSON으로 직렬화하고 TS에서 역 직렬화

분류에서Dev

중첩 된 객체 목록이있는 객체 목록을 JSON.NET에서 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

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

분류에서Dev

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

분류에서Dev

C # 목록으로 JSON 문자열 역 직렬화

분류에서Dev

C #의 JSON 배열을 목록으로 역 직렬화

분류에서Dev

JSON을 C # 개체 목록으로 역 직렬화

분류에서Dev

JSON 개체를 .Net 목록으로 역 직렬화 (C #)

Related 관련 기사

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

    C #에서 중첩 된 XML 역 직렬화 (Unity-Script)

  8. 8

    중첩 된 JSON의 Unity 역 직렬화

  9. 9

    중첩 된 JSON 역 직렬화

  10. 10

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

  11. 11

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

  12. 12

    Json을 중첩 된 pojo로 역 직렬화

  13. 13

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

  14. 14

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

  15. 15

    동적 개체에 중첩 된 C # 목록의 첫 번째 항목과 마지막 항목을 JSON으로 직렬화

  16. 16

    Symfony 4에서 중첩 된 DateTime 객체를 사용하여 json을 엔티티로 역 직렬화

  17. 17

    Newtonsoft.Json을 사용하여 C #에서 중첩 배열로 json을 역 직렬화하는 방법

  18. 18

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

  19. 19

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

  20. 20

    JSON에서 VB.NET으로 목록에서 역 직렬화

  21. 21

    JSON 역 직렬화-값으로 필요한 중첩 목록 및 키

  22. 22

    C #에서 JSON으로 직렬화하고 TS에서 역 직렬화

  23. 23

    중첩 된 객체 목록이있는 객체 목록을 JSON.NET에서 역 직렬화하는 방법은 무엇입니까?

  24. 24

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

  25. 25

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

  26. 26

    C # 목록으로 JSON 문자열 역 직렬화

  27. 27

    C #의 JSON 배열을 목록으로 역 직렬화

  28. 28

    JSON을 C # 개체 목록으로 역 직렬화

  29. 29

    JSON 개체를 .Net 목록으로 역 직렬화 (C #)

뜨겁다태그

보관