C#でネストされたリストを使用してJSONを逆シリアル化する方法は、常にnullです。 私を助けてください。私が間違っているところへ行くことができません。どんな助けでも本当に感謝しています。C#でネストされたリストを使用してJSONを逆シリアル化する
コードをデシリアライズしようとしていますが、アクティビティを取得しようとしていません。私のプロジェクトは、次のとおりです。もともとあなたActivities
コレクションのためのJSONを生成誰が
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; }
}
JSONが実際に二重引用符で囲まれているのはなぜですか?現在、あなたの文字列は有効なJSONではありません。 –
本当にjsonですか: k__BackingField "": "" ffe60a69-f3c8-adbe-9bbd-4050d766cc81 "これを逆シリアル化できないため、この" k__BackingField "は理由です。 –
正しくデシリアライズしますか'' IgnoreSerializableAttribute = true'を設定したい場合は、 '' IgnoreSerializableAttribute = true'を設定してください。 – OnoSendai